4

我正在尝试安装一个名为 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/也没有用。

我在那里做错了什么?

4

1 回答 1

7

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

使用 System.load

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

使用 System.loadLibrary

您也可以使用System.loadLibrary(String libName)函数来加载本机库。此方法取决于系统,需要您指定java.library.path本机库所在的路径。在您的情况下,您可以将-Djava.library.path=/path/toNativeLib/其用作 java 参数。

或者,由于您正在尝试使用Eclipse,您也可以通过以下方式指定此路径:右键单击 project > Properties。然后选择Java Build path 并单击 Source 选项卡,在这里如果您展开源文件夹,您可以设置Native library 位置,指定您的 native 库的路径:

在此处输入图像描述

由于此调用依赖于系统,请注意libName参数System.loadLibrary(String libName)不是直接的本机库名称。在MAC OS X(它在其他操作系统上的工作方式不同lib.dylib中,它libName使用.libSomeNative.dylibSomeNativelibName

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

于 2017-01-19T12:34:20.700 回答