Java에서 관리자 권한으로 프로그램을 실행하거나, cmd 명령어를 실행하고 싶을 때가 종종 있다. shell32.dll의 ShellExecuteEx 함수를 이용하면 Java에서 할 수 있다. ShellExecuteEx 지정된 파일에 대해 작업을 수행해주는 함수. 그런데 이 녀석, DLL 함수이다. Java에서 DLL을 참조하기 위해서 JNA 라이브러리를 사용해야 한다. JNA (Java Native Access) Java에서 Native 영역으로 Access 시켜준다. Maven으로 아래의 디펜던시를 추가하거나, net.java.dev.jna jna 4.2.1 혹은, 링크로 바로 다운받아서 프로젝트의 Build Path에 추가할 수도 있다. JNA를 추가했다면, 이제 shell32.dll을 사용하기 위..
JNA는 기존 JNI(Java Native Interface)의 복잡한 구현 방식을 단축하고자 나온 OpenSource Library이다. https://github.com/twall/jna JNA를 이용하면 JNI의 native library와의 연결을 위한 javah header파일 생성, native source 파일 생성, 컴파일 등의 과정이 불필요하며, 이미 만들어진 native library의 재사용이 가능하게 된다. 말 그대로 native access임..ㅎ 예 1) JNI 개발 과정 1) Native Method 선언된 Java Class 코딩 2) Java Class 컴파일 3) javah를 통한 C Header파일 생성 4) C 소스 코딩 5) C 소스 컴파일 6) Execute Jav..