【问题标题】:UnsatisfiedLinkError while loading native library加载本机库时出现 UnsatisfiedLinkError
【发布时间】:2013-02-01 16:19:50
【问题描述】:

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

System.loadLibrary("pHash");

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

线程“主”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

【问题讨论】:

  • 检查你容器中的另一个应用程序是否已经加载了这个程序,以防你正在运行一个 web 应用程序

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


【解决方案1】:

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

export LD_LIBRARY_PATH=/usr/local/lib

并重新启动您的程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多