繁体   English   中英

java.lang.UnsatisfiedLinkError:否 <LIBRARY> 在java.library.path中

[英]java.lang.UnsatisfiedLinkError: no <LIBRARY> in java.library.path

问题

我一直在尝试在自己的Mac上运行单元测试。 该测试在Linux服务器上运行正常,但在本地失败并显示以下跟踪信息:

java.lang.UnsatisfiedLinkError: no fedel_client in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    ....

我尝试过的

从服务器复制.so文件

我已将fedel_client.so从服务器复制到本地计算机上的/workspace/dapper/java/lib/native/macosx ,并将其添加到java.library.path

-Djava.library.path=/workspace/dapper/java/lib/native/macosx:...

创建一个符号链接

我已经创建了从fedel_clinetfedel_clinet.so的符号链接,以防Java正在寻找前者(不带.so扩展名)。

.so目录添加到.bashrc

我尝试将.so目录添加到PATH

PATH=$PATH:/Users/adamatan/workspaces/trunk/dapper/java/lib/native/macosx

并到LD_LIBRARY_PATH

export LD_LIBRARY_PATH="/Users/adamatan/workspaces/trunk/dapper/java/lib/native/macosx"

打印java.library.path

我已经打印了java.library.path ,以查看Eclipse环境中的更改是否传播到了JVM:

System.out.println(System.getProperty("java.library.path"));

并得到:

/workspace/dapper/java/lib/native/macosx:....

我在Eclipse配置中放置的确切值。

调试思路?

所有上述解决方案都得到了完全相同的错误。 任何想法如何调试此问题? 我可以从Java获得更详细的错误消息吗? 找不到文件或未加载文件? 如果未加载,为什么呢?

我可能读错了您的声音,但听起来您已将本机库( libfedel_client.so )从Linux服务器复制到了自己的Mac。 如果是这种情况,那肯定是行不通的。 您不能在Mac上使用Linux本机库,您将需要在Mac上重新编译它以产生libfedel_client.dylib

根据您使用的Apple Java运行时的版本,您可能需要使用.jnilib扩展名。 早期的运行时使用.jnilib扩展名而不是.dylib ,并且仍然支持两个扩展名(尽管现在是.dylib的默认设置。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM