JNI 오류 문의
글쓴이: christ17 / 작성시간: 수, 2015/07/29 - 11:36오전
http://knight76.tistory.com/entry/jni-vs-jna
상기 링크 따라 하고 있습니다.
$ javah HelloJNI 부분에서
Error: Could not find class file for 'HelloJNI.claas'
이렇게 나오네요
어제 집에서 할 땐 JNI 예제 되는 것을 확인 했습니다
오늘 회사에서 해보니 안 되네요
H/W(라즈베리파이 b+) 구성은 똑같습니다. 다만 회사에서 하는 것이구요
한 가지 의심 되는 건 제가 어제 따라하던 도중 라이브러리 파일 만드는 부분에서 에러가 나서
$ vi /etc/profile 에
export JAVA_HOME=/usr/lib/jvm/jdk-8-oracle-arm-vfp-hflt export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=$JAVA_HOME/jre/bin/lib/ext:$JAVA_HOME/lib/tools.jar
이 3 라인 추가해줬습니다.
어제 JNI 실행 되는 것 확인한 후, 오늘 처음부터 다시 따라 해보니 헤더파일만드는 과정에서 class를 찾을수 없다고 나오네요
저 추가해준 부분 문제가 될 듯 싶은데요.
지워서 해봐도 안 되고, 구글 찾아봐도 안 나와서 질문 올립니다
Forums:
현재경로(.)를 추가해야 합니다. export
현재경로(.)를 추가해야 합니다.
export CLASSPATH=$JAVA_HOME/jre/bin/lib/ext:$JAVA_HOME/lib/tools.jar:.
Written By the Black Knight of Destruction
일단 집에서 :. 현재경로 추가해주니 잘
일단 집에서 :. 현재경로 추가해주니 잘 되네요.
# javah HelloJNI 헤더파일 생성까지는 잘 됩니다.
그 다음
# gcc -c -I$JAVA_HOME/include -I$JAVA_HOME/include/linux HelloJNI.c C코드 컴파일에서 에러가 납니다.
In file included from HelloJNI.c:1:0:
HelloJNI.h:2:17: fatal error: jni.h: No such file or directory
이건 왜 이런걸까요? 경로 문제가 헷갈리면서 어렵네요
클래스 생성 할때 .class 찾는 문제는 내일 회사(환경)에서도 해보겠습니다.
감사합니다.
jni.h 는 JDK가 설치된 경로의 include에
jni.h 는 JDK가 설치된 경로의 include에 보시면 있습니다.
배포판마다 다르니 일괄 설명할수는 없네요. JAVA_HOME 환경변수 세팅 안된 배포판도 많고요
(/usr/bin 아래의 java 실행파일안에 하드코딩된 JAVA_HOME 있거나 여러 JDK 쓸수있게 할려고 스크립트로 짜둔 경우 등등...)
정 못찾으시겠다면 루트권한으로
find / -name jni.h
돌리면 나올겁니다. 없다면 JDK 안깔린겁니다.
Written By the Black Knight of Destruction
JNI 문제해결
잘 되었습니다.
$ source /etc/profile 접근해서
수정해주고 컴파일 및 실행하니 잘 되네요~^^
댓글 달기