JNI 오류 문의

christ17의 이미지

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를 찾을수 없다고 나오네요
저 추가해준 부분 문제가 될 듯 싶은데요.
지워서 해봐도 안 되고, 구글 찾아봐도 안 나와서 질문 올립니다

Necromancer의 이미지

현재경로(.)를 추가해야 합니다.

export CLASSPATH=$JAVA_HOME/jre/bin/lib/ext:$JAVA_HOME/lib/tools.jar:.

Written By the Black Knight of Destruction

christ17의 이미지

일단 집에서 :. 현재경로 추가해주니 잘 되네요.
# 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 찾는 문제는 내일 회사(환경)에서도 해보겠습니다.
감사합니다.

Necromancer의 이미지

jni.h 는 JDK가 설치된 경로의 include에 보시면 있습니다.
배포판마다 다르니 일괄 설명할수는 없네요. JAVA_HOME 환경변수 세팅 안된 배포판도 많고요
(/usr/bin 아래의 java 실행파일안에 하드코딩된 JAVA_HOME 있거나 여러 JDK 쓸수있게 할려고 스크립트로 짜둔 경우 등등...)

정 못찾으시겠다면 루트권한으로

find / -name jni.h

돌리면 나올겁니다. 없다면 JDK 안깔린겁니다.

Written By the Black Knight of Destruction

익명 사용자의 이미지

잘 되었습니다.
$ source /etc/profile 접근해서
수정해주고 컴파일 및 실행하니 잘 되네요~^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.