JNI란 JAVA에서 NATIVE영역으로 들어가 호출 또는 NATAVIE에서 JAVA로 호출하는 인터페이스를 말한다.

쉽게 말해 JNI는 JAVA와 다른 언어를 연동하는 라이브러리? 솔루션? 이라고 말할 수있다.



JAVA <---> JNI <---> C/C++



이런 형태로 서로 다른 언어에서 메소드(함수)를 호출하여 사용할 수 있는데 기존에 작성된 방대한 C/C++ 라이브러리를 JAVA에서 이용하기 위한 방법으로 사용된다고 한다.


회사 프로젝트로 이번에 JNI를 담당하게 됬는데 생각보다 C++에서 사용하기위해 JAVA함수를 호출하는 예제가 없거나 너무 옛날 글들이 많았다. 

수많은 뻘짓을 통해 성공을 했는데 막상 해보고나니 소스가 어렵다기보단 프로젝트 환경설정해주는거에서 막혔던 부분이였다.


포스팅을 하기 앞서 이번 가이드에서 사용할 환경을 미리 안내하고 시작하려고 한다.


1. Visual Studio 2015

2. JDK 1.8 (32 or 64)


사실 비쥬얼 스튜디오 버전은 크게 상관없을것이다. 문제는 빌드하려는 환경(32비트,64비트)에 맞는 jdk를 설치해줘야 한다는점.




1) JDK 설치 및 환경 변수 셋팅

- 오라클 홈페이지에서 jdk 1.8 버전을 다운로드 받은뒤 설치를 하도록 하자.


http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


나는 32 / 64비트 모두 필요하기에 전부 받아 설치하였다.

우선 32비트 환경에서 빌드하기 위해 32비트 환경 설정을 하도록 하겠다. 64비트 운영체제에서 32비트 프로그램은C:\Program Files (x86) 에 저장이 된다.



시스템 속성 -> 환경 변수 버튼 클릭





시스템 변수 새로만들기 버튼 클릭





변수 이름 JAVA_HOME 변수 값 JDK 설치 경로 지정 후 확인





시스템 변수 Path 선택하여 편집버튼 클릭





새로 만들기 버튼 클릭하여 %JAVA_HOME%\bin, %JAVA_HOME%\jre\bin\server 작성 후 확인 버튼



여기까지하면 시스템 변수 잡아주는 과정은 끝났다. 제대로 잡혔는지 확인해보고 싶으면 cmd창을 띄운뒤 javac -version 을 입력해보길 바란다.






2) Visual Studio Project 생성 및 속성 수정



Win32 콘솔 어플리케이션으로 프로젝트를 생성한다.





뷰에서 프로젝트 우클릭하여 프로퍼티 속성을 클릭하거나 alt + enter 키를 눌러 속성창을 킨다





좌측 메뉴에서 C/C++ -> General 탭에서 Addtionnal Include Directories에 패스를 입력해준다.




C:\Program Files (x86)\Java\jdk1.8.0_181\include\win32;

C:\Program Files (x86)\Java\jdk1.8.0_181\include;%(AdditionalIncludeDirectories)


위의 2개 경로 입력




Linker -> General 탭에서 Addtional Library Directories 수정


C:\Program Files (x86)\Java\jdk1.8.0_181\lib




Linker -> input

jvm.lib 추가



여기까지가 프로젝트 속성 셋팅이 끝났다

다음 포스팅에서는 간단하게 구현을 해보겠다~


+ Recent posts