Cli*_*ton 6 java macos java-native-interface jogl
背景
所以我试图在运行时在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());
Run Code Online (Sandbox Code Playgroud)
尝试使用JOGL API时出现以下异常:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
Run Code Online (Sandbox Code Playgroud)
但是当我java.library.path通过添加以下JVM选项指定时:
-Djava.library.path="/var/folders/+n/+nfb8NHsHiSpEh6AHMCyvE+++TI/-Tmp-/"
Run Code Online (Sandbox Code Playgroud)
一切正常.
题
是否可以System.load在Mac OS X上使用(或其他变体)作为在运行时调用的-Djava.library.path的替代?
小智 1
Jogl 总是尝试自动加载所有依赖库。为了避免这种情况,应该有一个 NativeLibLoader 类,您可以在通过 System.load() 自己加载库之前调用disableLoading()
| 归档时间: |
|
| 查看次数: |
12439 次 |
| 最近记录: |