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

Java 如何通过导出的app.jar在Mac OSX上加载本机JOGL.jnilib扩展?,java,macos,java-native-interface,jogl,Java,Macos,Java Native Interface,Jogl,问题似乎在于,在Mac OSX(与Windows相反)上,jogl.jar要求本机扩展位于特定的系统路径/system/Library/Java/extensions/(如:)中所述 但是,我正在分发这个应用程序,我无法要求我的用户将random.jnilib文件复制到系统文件夹中,尤其是当我的用户相对不懂技术的时候 然后,我尝试使用以下命令创建Visualizer.command文件: java-Djava.library.path=./lib/opengl natives/macosx/-j

问题似乎在于,在Mac OSX(与Windows相反)上,jogl.jar要求本机扩展位于特定的系统路径
/system/Library/Java/extensions/
(如:)中所述

但是,我正在分发这个应用程序,我无法要求我的用户将random.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

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

您不能创建一个安装程序来检查扩展/安装它们吗?SJuan76,这不是必需的,Xerxes是正确的。没有什么特别的事可做。首先,jogl.jar不再存在,它来自没有维护的jogl 1,他应该使用积极维护的jogl 2。JOGL 2将其所有本机库存储到jar中,它们必须与包含类的JOGL&GlueGen jar(JOGL-all.jar&GlueGen-rt.jar)位于相同的目录中,或者在最坏的情况下,您可以创建一个包含应用程序和JOGL的胖jar。无论如何,没有Java库路径可设置,也没有本机库可复制到目录中。此外,上面引用的网页完全过时,它指向完全过时的JOGL JAR(JSR 231 beta 5,甚至比JOGL 1更旧)。这种极旧版本的JOGL没有机会在现代Mac上工作。我宁愿去。