我正在尝试从我的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。哎呀!
答案 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相同。