問題
私は自分の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:...
シンボリックリンクを作成する
Javaが前者(拡張子なし)を探している場合に備えて、からfedel_clinet
へのシンボリックリンクを作成しました。fedel_clinet.so
.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からより詳細なエラーメッセージを受け取ることはできますか?ファイルが見つからないか、ロードされていませんか?ロードされていない場合、それはなぜですか?