実行時にLinuxの.soファイルをJavaでロードしようとしていますが、UnsatisfiedLinkErrorが表示されています。私はTest.classから以下のjava mainを実行するときに-Djava.library.path =/Users/tom/codebase/jni/dist VM引数を渡します。 libSample.soファイルは/ Users/tom/codebase/jni/distディレクトリにあります。何か案は?ありがとう!JavaランタイムでLinuxの.soファイルを読み込む
public class Test {
public static void main(String[] args) {
System.out.println(System.getProperty("java.library.path"));
//prints /Users/tom/codebase/jni/dist
System.loadLibrary("Sample");
}
}
VM引数:
-Djava.library.path=/Users/tom/codebase/jni/dist
例外:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no Sample 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)
at Test.main(Test.java:9)
また、私は(は、System.loadを使用して)直接的なアプローチを試みる使用しようと、以下の結果を得ましたこれらがスレッド「main」内の例外を助ける場合java.lang.UnsatisfiedLinkError:/ Users/tom/codebase/jni/dist/libSampl e.so:適切な画像が見つかりません。見つかった:/Users/tom/codebase/jni/dist/libCiscoEnergyWiseJni.so:最初の8バイト:0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00
は、あなたのライブラリが別のライブラリに依存しないことができますlibCiscoEnergyWiseJniと呼ばれる? – laher
(その場合は、/ the/folder/where/its /をjava.library.pathの最後に追加する必要があります) – laher
これは誤字ではありません...固定されました – c12