java - 如何使用dylib文件?

标签 java eclipse macos

我正在尝试安装一个名为 V-Rep 的机器人模拟软件,用于远程模拟机器人,我需要有 remoteApi.javaremoteApiJava.dylib 文件。我似乎无法弄清楚如何使用 dylib 文件。 构建项目时出现的错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no remoteApiJava in java.library.path

我尝试直接在终端中运行 dylib 文件,但没有成功。

我把它放在/projectPath/lib/,并在eclipse中添加它作为构建路径,没用

我也尝试在运行配置中设置环境变量,DYLD_LIBRARY_PATH =/projectPath/lib/ 也没有用。

我哪里做错了?

最佳答案

要在 java 中加载 native 库,您可以使用以下方法之一:

使用 System.load

您可以使用 System.load(String filename) function要直接从文件系统加载库,您必须指定 native 库的绝对路径名。例如 System.load("/System/libraries/libSomeNative.dylib")

使用 System.loadLibrary

您也可以使用 System.loadLibrary(String libName) function加载 native 库。此方法依赖于系统并要求 您使用本地库所在的路径指定 java.library.path。在您的情况下,您可以使用 -Djava.library.path=/path/toNativeLib/ 作为 java 参数。

或者,由于您正在尝试使用 Eclipse,您还可以按以下方式指定此路径:右键单击项目 > 属性。然后选择 Java Build path 并单击 Source 选项卡,如果展开源文件夹,您可以在此处设置 Native library location 指定您的 native 库的路径:

enter image description here

由于此调用依赖于系统,请注意 System.loadLibrary(String libName)libName 参数不是直接的本地库名称。在 MAC OS X 中(它在其他操作系统上的工作方式不同)它使用 lib 前缀和 .dylib 后缀 libName,因此要指定 libSomeNative.dylib,您必须使用 SomeNative 作为 libName

总结一下,例如要加载 /System/libraries/libSomeNative.dylib 您必须指定 java.library.path=/System/libraries/ 如上所述并调用 System.loadLibrary("SomeNative")

关于java - 如何使用dylib文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16506297/

相关文章:

java - 尝试在 Java 中对 Google pubsub 执行同步拉取时出错

java - Android开发的最低硬件要求?

android - 在安卓模拟器上运行apk

linux - 如何将指定目录复制到目录一次?

java - 运行它但在 s :iterator tag 中没有显示

java - 如何在 Bouncy CaSTLe JSSE (1.68) 中启用命名组?

java - Eclipse 中的代码导航

iphone - 音频队列服务: changing output device

ios - 如何使用 Swift 获取 iOS APP 归档日期

java - DateTime compareTo 不适用于 DateTime