java.lang.UnsatisfiedLinkError:在java.library.path中没有

时间:2013-09-26 10:05:57

标签: java shared-libraries

When i'm trying to load the .so file from the Java, i'm getting error like this.

Exception in thread "main" java.lang.UnsatisfiedLinkError: no yeslib.so in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
    at java.lang.Runtime.loadLibrary0(Runtime.java:840)
    at java.lang.System.loadLibrary(System.java:1047)
    at com.rct.micros.util.GetCustClass.getScratchCode(GetCustClass.java:76)
    at com.rct.micros.util.GetCustClass.main(GetCustClass.java:39)

我尝试过System.load(absoulte path)和System.loadLibrary(sofilename)。两者都给出了同样的错误。当我将这个so文件复制到usr / lib / jvm包时,它正在工作..

任何人都可以帮助如何使用Java解决这个问题。我在Linux机器上运行。

1 个答案:

答案 0 :(得分:0)

库可能在您的路径上,但由于其他原因无法加载。

我用来调试这样的问题的一个技巧是运行java -Xrunsofilename

-Xrun是加载JVMPI库(旧的分析界面)的JVM选项。如果成功,它将加载库并抱怨它不是代理库。但如果它失败(希望!)它将打印一条错误消息。这通常是比来自UnsatisfiedLinkError的更具描述性的错误消息。