Java似乎无法找到我的本机库

时间:2010-08-27 19:16:24

标签: java java-native-interface

我正在尝试从我的jar中运行我的程序,名为PViz.jar。 jar位于一个目录中,其中包含所有依赖的jar和它们所依赖的.so文件。我使用的是Mac OS X.当我运行时:

java -cp PViz.jar pviz.PVizStart

然后我得到一个UnsatisfiedLinkError,说“java.library.path中没有jogl”。这是合理的,我正在使用jogl.jar,它使用本机库libjogl.so。

所以我运行这个:

java -Djava.library.path=. -cp PViz.jar pviz.PVizStart

我得到同样的错误。但是libjogl.so在当前目录中!我想也许我需要给出整条路径,所以我尝试了这个:

java -Djava.library.path=/bla/bla/bla/libjogl.so -cp PViz.jar pviz.PVizStart

它仍然给我相同的UnsatisifedLinkError。哎呀!

2 个答案:

答案 0 :(得分:2)

Here是关于如何在不同的操作系统上设置jogl的逐步说明,包括OS X.

答案 1 :(得分:0)

尝试在应用程序的一个主要类中的静态初始化程序中加载lib。

示例(从我的某个项目中复制+重命名):

public class MainClass {
    static {
        System.loadLibrary( "Your_native_lib_file_name" ); // Note: do not include the file extension!
    }
}

本机库应与jar相同。