gpt4 book ai didi

java-native-interface - 加载共享库 : libjvm. 时出错,因此:

转载 作者:行者123 更新时间:2023-12-01 23:43:11 27 4
gpt4 key购买 nike

我正在尝试制作这个 JNI example作品。我能够编译所有文件,但由于这个错误我无法启动可执行文件:

./TEST: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory

我检查了所有的路径,编译没有错误...
现在我认为这与我的操作系统 (OpenSuse) 或我的 java 版本有关:我正在运行 java 1.7,代码使用 JVM 1.6 (vm_args.version = JNI_VERSION_1_6;).. 并且 JNI_VERSION_1_7 似乎不存在。

最佳答案

我找到了一个很好的例子,我猜是网上最好的例子之一,因为作者写下了他使用的每个文件的路径:Tutorial

我仍然有图书馆问题,所以这是我设法让所有工作正常进行的方法:

  1. 在同一个目录中创建 java 和 cc 文件(参见上面的链接)。
  2. 使用您的 Java 类的路径编辑 main.cc 中的以下行:

{ const_cast<char*>("-Djava.class.path=PATH_TO_JAVA_CLASS"), NULL }

  1. 转到轨道并编译 java 类:

$ javac Main.java .

  1. 查找文件 libjvm.so在你的电脑。一旦你有找到了,编辑lib路径如下:

$ LIBPATH=PATH_TO_LIBJVM.SO

(对我来说是 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0/jre/lib/amd64/server)

  1. 导出lib路径

$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${LIBPATH}

  1. 现在您只需要编译 main.cc 文件。我有一个问题,因为 jni.h未找到:

    一个。查找 jni.h (对我来说 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0/include/)

    如果您对 jni_md.h 有疑问, 创建 jni_md.h 的符号链接(symbolic link)在 jni.h 的同一文件夹中

    编译如下:

$ g++ -Wall main.cc -I/PATH_TO_jni.h -L${LIBPATH} -ljvm

  1. 应该不错:)

./a.out

Hello, world!

Hello, Java!

关于java-native-interface - 加载共享库 : libjvm. 时出错,因此:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30376132/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com