问题
我一直在尝试在我自己的 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_clinet
to的符号链接fedel_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 获得更详细的错误消息吗?是找不到文件,还是没有加载?如果没有加载,那是为什么呢?