使用JNI时出现UnsatisfiedLinkError?

Poo*_*shi 6 c java linux java-native-interface

我想在linux ubuntu中使用JNI从Java程序中调用一个C程序.

我是新手,我已经尝试了http://www.ibm.com/developerworks/java/tutorials/j-jni/section2.html中给出的示例程序 .我已经创建了.java,.h,.c和.so文件.但是,当我试图运行该程序时,我收到以下错误.

Exception in thread "main" java.lang.UnsatisfiedLinkError: no Sample1 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1028)
    at Sample1.main(Sample1.java:13)

hmj*_*mjd 3

此异常表明.soJVM 不可用。

将 存在的目录添加.soLD_LIBRARY_PATH将解决此问题。如果.so依赖于其他.so库,则这些库所在的目录.so也需要添加到LD_LIBRARY_PATH.

  • 我尝试设置库路径,但它仍然不起作用。我的 ubuntu 版本是 Ubuntu 10.04.4 LTS。我刚刚从其他网站了解到,在这个版本的 ubuntu 中 LD_LIBRARY_PATH 不再起作用。请帮助解决这个问题。感谢您的帮助。 (3认同)