为什么Java在Linux上看不到本地库?

时间:2015-11-18 17:34:01

标签: java linux ubuntu

我有一个问题,包括Linux Ubuntu上我的Java项目的本机库。

目录/mnt包含启动所需的文件treedb.jarjkyotocabinet.so

root@vtt9:/mnt# ls -l

-rwxr-xr-x 1 root root 1948919 Mar 11  2014 jkyotocabinet.so
-rwxr-xr-x 1 root root 1404322 Nov 18 16:11 treedb.jar

我用param -Djava.library.path=.启动程序:

root@vtt9:/mnt# sudo java -Xms5000m -Xmx51000m -d64 -jar
-Djava.library.path=. treedb.jar

程序将字符串打印到控制台:

current dir = /mnt/.
java library path = .

然后我在System.loadLibrary("jkyotocabinet");上有例外:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jkyotocabinet in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
        at java.lang.Runtime.loadLibrary0(Runtime.java:849)
        at java.lang.System.loadLibrary(System.java:1088)
        at treedb.Main.main(Main.java:27)

我还查看java -XshowSettings:properties,将jkyotocabinet.so放到java.library.path中的其他目录中,以编程方式设置System.setProperty( "java.library.path", "." );

我不明白它有什么问题?在Windows上它很棒。我只需要将.so替换为.dll

0 个答案:

没有答案