我关注这个JNI ref从 java 调用 c 函数。
在最后一步,我在输入 java hellojni 后收到以下错误消息:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no helloJni in
java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at HelloJni.(HelloJni.java:13)
我尝试设置 java.library.path,所以我键入 java -Djava.library.path=。你好Jni
但这对我不起作用,我仍然收到相同的错误消息。
此外,我尝试了 export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/sybase/IQ-16_0/jim_samples/udf/hellojni,但仍然无效。
最佳答案
这似乎是路径问题,您的 libhellojni.so 在“sybase/IQ-16_0/jim_samples/udf/hellojni”目录 中找不到。
请记住,'lib' 前缀在您的 xxx.so 文件中很重要(如果您在 Linux 中运行它),只是 hellojni.so 将不起作用。
关于java - 我正在尝试 JNI 如何在 Linux 中设置 java.library.path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38653637/