问题似乎是在 Mac OSX(而不是 Windows)上,jogl.jar 要求本机扩展位于特定的系统路径中/System/Library/Java/Extensions/
(如所述:http ://cs.gmu.edu/~jchen/graphics/jogl /notes/joglSetup.html )。
但是,我正在分发这个应用程序,我无法要求我的用户将随机的 .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