加载本机库时出现UnsatisfiedLinkError

时间:2013-02-16 22:42:35

标签: java linux java-native-interface 64-bit

我正在尝试使用java程序中的本机库。 我可以通过以下命令在libpHash.so中成功加载/usr/local/lib

System.loadLibrary("pHash");

但是当我尝试通过调用libpHash-jni.so在同一文件夹中加载System.loadLibrary("pHash-jni")时,我收到以下错误:

  

线程“main”中的异常java.lang.UnsatisfiedLinkError:   /usr/local/lib/libpHash-jni.so:libpHash.so.0:无法打开共享   目标文件:没有这样的文件或目录

为什么?


其他一些信息:

  • libpHash.solibpHash.so.0都是libpHash.so.0.0.0
  • 的符号链接
  • libpHash.so.0.0.0libpHash-jni.so都是ELF 64位LSB共享对象
  • 我有64位JVM

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是使用ldconfig更新动态链接器缓存。如果这不能解决问题,您也可以尝试设置LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/usr/local/lib

并重新启动您的计划。