【发布时间】:2013-05-05 00:12:43
【问题描述】:
问题似乎是在 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
【问题讨论】:
-
你不能创建一个安装程序来检查扩展/安装它们吗?
-
SJuan76,这不是必须的,Xerxes 是对的。没有什么特别的事情要做。一开始 jogl.jar 已经不存在了,它来自 JOGL 1 没有维护,他应该使用积极维护的 JOGL 2。 JOGL 2 将其所有本机库存储到 JAR 中,它们只需要位于与包含类(jogl-all.jar 和 gluegen-rt.jar)的 JOGL 和 GlueGen JAR 相同的目录中,或者在最坏的情况下,您可以创建单个包含您的应用程序和 JOGL 的胖 JAR。无论如何,没有要设置的 Java 库路径,也没有要复制到目录中的本地库。
-
此外,上面引用的网页已经完全过时,它指向完全过时的 JOGL JAR(JSR 231 beta 5,比 JOGL 1 还要早)。这个极其旧版本的 JOGL 无法在现代 Mac 上运行。而是去jogamp.org。
标签: java macos java-native-interface jogl