[예제] 간단한 JNI 예제 작성
[작업 순서]
1 |
C Function을 호출하는 자바 프로그램(HelloJNI.java) 작성 후 .class 생성 |
2 |
C 프로그램(HelloJNI.h와 HelloJNI.c) 작성 후 Shared Library 생성 |
3 | 테스트. $java HelloJNI |
1. C Function을 호출하는 자바 프로그램(HelloJNI.java) 작성
<HelloJNI.java>
Line 3 |
Native 동적 라이브러리(Windows에서는 .dll 파일, Linux에서는 .so 파일)를 로딩한다. 위의 예제에서는 libhello.so(Linux) 또는 hello.dll(Winodws)를 로딩한다는 의미이다. |
Line 6 | JNI를 통해 제공되는 함수 선언 |
2. C 프로그램(HelloJNI.h와 HelloJNI.c) 작성 및 Shared Library 생성
Line 1 | $JAVA_HOME/include 디렉토리에 있는 "jni.h"를 include한다. Linux에서 컴파일 오류가 발생하여, jni.h 파일에서 #include "jni_md.h" 내용을 #include "linux/jni_md.h" 변경해주었다. |
Line 9 | C function은
|
<HelloJNI.c>
<Compile & 동적 라이브러리 생성>
$gcc -fPIC -I$JAVA_HOME/include -c HelloJNI.c $gcc -fPIC -I$JAVA_HOME/nclude -shared -o libhello.so HelloJNI.o |
3. 테스트
[글참조] https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html