Java库路径问题

时间:2012-07-25 17:07:09

标签: java classpath shared-libraries static-libraries

我在/ data / subv / Mem中有以下JNI共享库,我已将LD_LIBRARY_PATH设置为:

  LD_LIBRARY_PATH=/data/subv/Mem 

包含两个文件:bmemBridgelib.so和memBridgelib.so,使用以下方式生成:

  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

我在我的Java程序中加载库以使用JNI,如下所示

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

来解决

由于

1 个答案:

答案 0 :(得分:2)

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

More details