我正在尝试安装一个名为 V-Rep 的机器人模拟软件来远程模拟机器人,我需要有remoteApi.java
and remoteApiJava.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 中加载本机库,您可以使用以下方法之一:
使用系统加载
您可以使用System.load(String filename)功能 https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#load(java.lang.String)要直接从文件系统加载库,您必须指定本机库的绝对路径名。例如System.load("/System/libraries/libSomeNative.dylib")
.
使用 System.loadLibrary
您也可以使用System.loadLibrary(String libName)功能 https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#loadLibrary(java.lang.String)加载本机库。此方法依赖于系统并且要求
你指定java.library.path
与您的本机库所在的路径。在你的情况下你可以使用-Djava.library.path=/path/toNativeLib/
作为 java 参数。
或者因为你正在尝试Eclipse您还可以通过以下方式指定此路径:右键单击项目 > 属性。然后选择Java 构建路径并单击“源”选项卡,如果您展开源文件夹,您可以在此处设置本地库位置指定您的本机库的路径:
由于此调用取决于系统,请注意libName
的参数System.loadLibrary(String libName)
不是直接的本机库名称。在MAC OS X(它在其他人身上的工作方式有所不同)它使用lib
前缀和.dylib
后缀在libName
,因此要指定libSomeNative.dylib
你必须使用SomeNative
as libName
.
总结一下,例如加载/System/libraries/libSomeNative.dylib
你必须指定java.library.path=/System/libraries/
如上所述并致电System.loadLibrary("SomeNative")
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)