현재 JNI와 협력 중입니다. 내가 HelloJNI.java했다리눅스에서 jni (Cent6) : "main"스레드의 예외 java.lang.UnsatisfiedLinkError
:
나는 다음 일을했다. 단순히 libhello.so 라이브러리를 링크합니다.static { System.loadLibrary("hello"); }
이 같은
나는 클래스 파일, C 파일 및 헤더 파일을 만들었습니다. 은 내가 libhello.so했다
#javac HelloJNI.java #javah -classpath /usr/guest/workspace/path/ -jni package.HelloJNI no errors till now.
- 을 명령했다.
# gcc -shared -fpic -o libhello.so -I/usr/java/jdk1.7.0_21/include -I/usr/java/jdk1.7.0_21/include/linux HelloJNI.c
이 프로젝트를 Eclipse에서 실행하면 아래와 같은 오류가 발생합니다.
Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) at java.lang.Runtime.loadLibrary0(Runtime.java:845) at java.lang.System.loadLibrary(System.java:1084) at org.owls.jni.HelloJNI.<clinit>(HelloJNI.java:7)
나는이 일을 시도했지만 작동하지 않습니다.
# chcon -t texrel_shlib_t libhello.so
읽어 주셔서 감사하고 지혜로운 해결책 :
- 누군가가 PATH 일에 대해 이야기 D. 하지만 그 줄을 어디에 둘 것인지 이해할 수 없습니다.