HelloJNI

By | May 4, 2015

맥에서 Hello JNI!를 출력하는 자바 응용프로그램을 개발해 보자. 단 이 응용프로그램은 문자열을 출력하는 부분을 C++ 로 작성할 것이다.

네이티브 라이브러를 사용하는 자바 클래스 작성하기

자바 코드 파일을 컴파일하여 class파일을 만든다.

JNI C++ 파일을 만들기 위해서 javah를 이용해 C++ 헤더파일을 만든다.

만들어진 파일을 확인해 보자

JNI 함수명과 인자타입 등은 관련 문서를 참고한다.

Java_HelloJNI_print 함수를 작성한다.

HelloJNI 네이티브 라이브러리를 만들기 위해서는 jni.h 파일의 위치를 알아야 한다. 맥에서는 아래의 위치에 있다.

컴파일해 보자

컴파일하면 HelloJNI.o 파일이 생성된다. 이제 동적라이브러리를 생성한다. 주의할 점은 라이브러리명은 반드시 lib으로 시작해야 하고 확장자는 jnilib 이여야 한다. 위 컴파일문에서 jni.h를 찾을 수 없다는 오류가 발생하면 jni.h 가 있는 곳을 찾아서 적어줘야 한다. 아래처럼 심볼링 링크를 직접 만들어서 사용해야 한다. 예를 들어 /System/Library/Java/JavaVirtualMachines/Headers 폴더를 만든 후 해당 폴더로 이동한 다음 아래의 명령어를 실행한다.

실행한다

만약 아래와 같은 링크 오류가 발생하면 실행할 때 네이티브 라이브러리가 있는 위치를 설정해야 한다.

Share on FacebookTweet about this on TwitterShare on Google+Share on RedditEmail this to someone