0

Java プログラムからネイティブ ライブラリを使用しようとしています。次のコマンドlibpHash.soで正常にロードできます。/usr/local/lib

System.loadLibrary("pHash");

しかし、libpHash-jni.so呼び出して同じフォルダーにロードしようとするSystem.loadLibrary("pHash-jni")と、次のエラーが発生します。

スレッド「メイン」での例外 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.0両方ともlibpHash-jni.soELF 64 ビット LSB 共有オブジェクト
  • 私は64ビットのJVMを持っています
4

1 に答える 1

0

考えられる解決策の 1 つは、動的リンカ キャッシュを で更新することldconfigです。これで問題が解決しない場合は、設定を試すこともできますLD_LIBRARY_PATH

export LD_LIBRARY_PATH=/usr/local/lib

プログラムを再起動します。

于 2013-02-16T23:05:57.233 に答える