2012-07-25 2 views
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에게

감사

답변

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

More details을 설정하여 해결 될 것으로 보인다.

+0

전체 클래스 패스를 덮어 씁니다. 그리고 난 정말 수정할 수없는 gradlew 스크립트로 내 프로그램을 컴파일 해요 ... 나는 그 간단한 대답이 될 것이라고 동의합니다 : p – user1018513

+0

@ user1018513 - 그것은 _classpath_에 영향을 미치지 않습니다. 그렇습니다. 유일한 해결책. 라이브러리 경로에 _other_ 것들이 필요할 경우에도 추가하십시오. – jtahlborn

+0

LD_LIBRARY_PATH가이 용도로 작동하지 않는 이유는 무엇입니까? 다른 사람을 위해 일하는 것처럼 보였습니다 – user1018513