Java - Linux上的java.library.path问题

时间:2011-06-21 00:49:16

标签: java linux native java.library.path

我可以在我的mac上运行一个带有cmd行依赖项的java程序,但是当我尝试在Linux SUSE 11上运行它时,我会回来:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no myNativeLib in java.library.path

这是我正在运行的cmd行:

java -Djava.library.path=../lib -cp ../jar/a-jar.jar:. MyMainClass

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

我建议使用java.library.path的绝对路径。至少可以消除相对路径分辨率可能出现的问题。

另外,为了确认,你在lib中有Linux库,对吧? Mac将无法正常工作。

答案 1 :(得分:0)

我要走出困境并假设(冒着一堆downvotes)你正在尝试使用oracle的本机数据库驱动程序。

如果它确实是您正在使用的数据库驱动程序,您可以保留本机版本,只需使用-cp扩展名将.jar瘦客户机包含在类路径中。这可能需要进行一些代码更改,以免您尝试调用本机驱动程序。

如果您一直在使用本机驱动程序,或者您需要,因为代码依赖于它。您需要确保将java.library.path变量设置为包含二进制驱动程序文件的目录(通常用.so扩展名表示)。

还要确保这些驱动程序文件(因为它们是本机二进制文件)已经编译好,以便您分发Linux,而不仅仅是从mac安装中方便地复制。

如果你没有做任何这些事情,可以随意忽略我所说的一切。