1
나는 다음과 같은 JNI 공유 라이브러리에/데이터/subv /의 Mem, 내가 설정 한 LD_LIBRARY_PATH에있는 한 문제 생성 된 사용 :자바 라이브러리 경로는
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
내가
static {
System.loadLibrary("memBridgelib");
}
을 다음과 같이 JNI를 사용하여 내 자바 프로그램에서 라이브러리를로드하지만, 얻을 다음과 같은 오류가 :
/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
모든 아이디어 : 내가 라이브러리 경로를 인쇄 할 때
Caused by: java.lang.UnsatisfiedLinkError: no memBridgelib in java.library.path
, 나는 MEM 폴더가 아님을 확인할 수 있습니까? 다른 모든 관련 질문은 LD_LIBRARY_PATH에게
감사
전체 클래스 패스를 덮어 씁니다. 그리고 난 정말 수정할 수없는 gradlew 스크립트로 내 프로그램을 컴파일 해요 ... 나는 그 간단한 대답이 될 것이라고 동의합니다 : p – user1018513
@ user1018513 - 그것은 _classpath_에 영향을 미치지 않습니다. 그렇습니다. 유일한 해결책. 라이브러리 경로에 _other_ 것들이 필요할 경우에도 추가하십시오. – jtahlborn
LD_LIBRARY_PATH가이 용도로 작동하지 않는 이유는 무엇입니까? 다른 사람을 위해 일하는 것처럼 보였습니다 – user1018513