【发布时间】:2012-07-25 17:07:08
【问题描述】:
我在 /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
谢谢
【问题讨论】:
标签: java classpath shared-libraries static-libraries