如何使用dylib文件?

时间:2013-05-12 10:14:37

标签: 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/也不起作用。

那里我做错了什么?

1 个答案:

答案 0 :(得分:5)

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

使用System.load

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

使用System.loadLibrary

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

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

enter image description here

由于此调用取决于系统,因此libName的{​​{1}}参数不是直接的本机库名称。在 MAC OS X (它在其他操作系统上的工作方式不同)中,它使用System.loadLibrary(String libName)前缀和lib上的.dylib后缀,因此要指定{{1您已将libName用作libSomeNative.dylib

总结一下,例如加载SomeNative您已指定libName,如上所述,并拨打/System/libraries/libSomeNative.dylib