我正在尝试 JNI 如何在 Linux 中设置 java.library.path
Posted
技术标签:
【中文标题】我正在尝试 JNI 如何在 Linux 中设置 java.library.path【英文标题】:How could set the java.library.path in Linux from I am trying JNI 【发布时间】:2016-12-03 20:45:57 【问题描述】:我按照这个JNI ref从java调用c函数。
在最后一步中,我在输入 java hellojni 后收到以下错误消息:
线程“main”中的异常 java.lang.UnsatisfiedLinkError: no helloJni in
java.library.path
在 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
在 java.lang.Runtime.loadLibrary0(Runtime.java:870)
在 java.lang.System.loadLibrary(System.java:1122)
在 HelloJni.(HelloJni.java:13)
我尝试设置 java.library.path,所以我输入 java -Djava.library.path=。 HelloJni
但这对我不起作用,我仍然收到相同的错误消息。
另外,我尝试export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/sybase/IQ-16_0/jim_samples/udf/hellojni,但还是不行。
【问题讨论】:
您是否在 Helloxxxx.java 中加载了库静态 System.loadLibrary("Helloxxxx"); 【参考方案1】:这似乎是路径问题,在“sybase/IQ-16_0/jim_samples/udf/hellojni”目录中找不到您的 libhellojni.so。
记住 'lib' 前缀在你的 xxx.so 文件中很重要(如果你在 Linux 中运行它),只有 hellojni.so 不起作用。
【讨论】:
以上是关于我正在尝试 JNI 如何在 Linux 中设置 java.library.path的主要内容,如果未能解决你的问题,请参考以下文章