1. java 로 DLL 의 프로토타입 생성
package jnitest.loader;
public class JNILoader {
public native void greet();
/*
static {
System.loadLibrary("HardInfo");
}
*/
public void loadLibrary() {
System.loadLibrary("HardInfo");
}
}
2. javah -jni <위 1번의 class 이름> 해서, C 언어용 헤더파일 생성
3. 위 헤더파일을 CPP 에서 include 하고, JDK 의 include 디렉토리를 Include Path 로 잡아서
cpp 컴파일 진행
4, 만들어진 DLL 이나 so 를 적정 디렉토리에 위치함
5. -Djava.library.path=<dll 패스> 하여 추가하더나, PATH 에 해당 디렉토리 잡히거나, Windows 디렉토리에 넣는다
6. 위 1 예제의 객체를 생성하고, 위의 경우, loadLibrary() 호출하고 (아니면 아예 static{ } 블록에서 System.loadLibrary 사용) JNI 를 사용한다
반응형
'Software Development > JavaSE&EE' 카테고리의 다른 글
ClassLoader 의 ClassLoading 메커니즘 (0) | 2010.01.27 |
---|---|
JNI 프로그래밍 시 DLL 이 중복 로드되는 경우 (0) | 2010.01.14 |
javacore 덤프 중 스레드 상태 확인 방법 (0) | 2009.12.15 |
java 의 dump 옵션 보기 (0) | 2009.12.15 |
Java ThreadDump 생성 방법 (0) | 2009.12.15 |