gpt4 book ai didi

java - 在 Mac OS X 上加载 JNI 库?

转载 作者:搜寻专家 更新时间:2023-10-31 08:04:23 24 4
gpt4 key购买 nike

背景

所以我试图在运行时将 jnilib(特别是 JOGL )加载到 Mac OS X 上的 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?

最佳答案

您不必在启动时提供 java.library.path。您可以使用

以编程方式设置它
System.setProperty("java.library.path", "/var/folder/bla/foo/bar/");

我不知道 System.load() 是否可以在没有这个库路径的情况下以某种方式工作。

关于java - 在 Mac OS X 上加载 JNI 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2550571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com