1

/data/subv/Mem に次の JNI 共有ライブラリがあり、LD_LIBRARY_PATH を次のように設定しました。

  LD_LIBRARY_PATH=/data/subv/Mem 

bmemBridgelib.so と memBridgelib.so の 2 つのファイルが含まれており、以下を使用して生成されます。

  gcc -I"/usr/lib/jvm/java-6-sun/include" -I"/usr/lib/jvm/java-6-sun/include/linux" -o 
  libmemBridgelib.so -shared -Wl,-soname,libmemBridge.so JniBridge.c -static -lc -fPIC

次のように JNI を使用するために、Java プログラムにライブラリをロードします。

static {
    System.loadLibrary("memBridgelib");
}

しかし、次のエラーが発生します。

 Caused by: java.lang.UnsatisfiedLinkError: no memBridgelib in java.library.path

ライブラリ パスを印刷すると、mem フォルダーがその中にないことを確認できます。

  /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/jni:/lib:/usr/lib

何か案は?他のすべての関連する質問は、LD_LIBRARY_PATH を設定することで解決されるようです

ありがとう

4

1 に答える 1

2
java -Djava.library.path=/data/ncrooks/subv/stream-paas/Mem[:<other_lib_paths>] ...

詳細

于 2012-07-25T17:14:04.433 に答える