如何通过导出的app.jar在Mac OSX上加载原生JOGL .jnilib扩展?

时间:2013-05-05 00:12:43

标签: java macos java-native-interface jogl

问题似乎是在Mac OSX(而不是Windows)上,jogl.jar要求原生扩展位于特定的系统路径/System/Library/Java/Extensions/中(如:http://cs.gmu.edu/~jchen/graphics/jogl/notes/joglSetup.html所述)。 / p>

但是,我正在发布这个应用程序,我无法让我的用户将随机的.jnilib文件复制到系统文件夹中,尤其是当我的用户与技术无关时。

然后我尝试用:

创建一个Visualizer.command文件

java -Djava.library.path=./lib/opengl-natives/macosx/ -jar ./viz.jar

并将所需的库放在指定的路径中,但这也不起作用。

在Windows上,只是将原生.dll与.jar文件放在同一个文件夹中,但我告诉我在unix系统(如Mac)上,这不起作用,因为默认情况下unix不加载库除非另有说明,否则从当前工作目录开始。

编辑: 作为参考,这里是我在Windows上用于执行相同库加载的Visualizer.bat文件:

java -Djava.library.path=.\lib\opengl-natives\windows32 -jar parking-viz.jar

1 个答案:

答案 0 :(得分:1)

使用JogAmp JOGL 2时,不再需要在特定系统路径中使用本机扩展,而只需将jogl-all.jar和gluegen-rt.jar包含在项目中。如果它们位于jogl-all.jar和gluegen-rt.jar旁边,则将在运行时自动找到所有macos x特定本机jar。 http://jogamp.org/wiki/index.php/Setting_up_a_JogAmp_project_in_your_favorite_IDE