背景
我正在尝试在Mac OS X上运行时将jnilib(特别是JOGL)加载到Java中。我一直在关注相关的Stack Overflow问题:
对于我来说,最终目标是将平台特定的JOGL文件打包到JAR中,解压缩它们到临时目录并在启动时加载它们。我通过硬编码路径来尝试简化我的问题,即尝试加载JOGL:
File f = new File("/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/libjogl.jnilib");
System.load(f.toString());
f = new File ("/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/libjogl_awt.jnilib");
System.load(f.toString());
当我尝试使用JOGL API时,出现以下异常:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
但是,当我通过添加以下JVM选项指定
java.library.path
时: -Djava.library.path="/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/"
一切运作正常。
问题
在 Mac OS X 上,是否可以使用 System.load
(或其他变体)作为在运行时调用的 -Djava.library.path 的替代品?