(1) 유닉스/리눅스 계열에서는 소스에서 보는 라이브러리 이름과 라이브러리 파일의 이름이 다르다 (즉, lib 가 붙는다) 는 점에 유의해야 한다. 소스에서 JNIExample1 으로 loadLibrary를 했다면 이때 끌려가는 라이브러리의 이름은 libJNIExample1.so 가 된다.

(2) 리눅스+GCC 에서 공유 라이브러리(shared library)를 만드는 방법
gcc  -fPIC -shared -I/usr/lib/jvm/java-6-sun-1.6.0.13/include -I/usr/lib/jvm/java-6-sun-1.6.0.13/include/linux JNIExample1.c -o libJNIExample1.so
(3) 공유 라이브러리를 끌어가는 것은 리눅스의 시스템 변수인 LD_LIBRARY의 영향을 받는다. 만약 현재 클래스 파일과 라이브러리가 같은 디렉토리에 있고 그 디렉토리에서 실행한다면,
export LD_LIBRARY_PATH=`pwd`
(4)  CeGCC를 이용해서 리눅스에서 마이크로소프트 윈도 모바일에서 돌아가는 JNI용 dll 만드는 법 (lib를 붙이지 않음에 주의!!!)
arm-mingw32ce-gcc -g --shared -I/usr/lib/jvm/java-6-sun-1.6.0.13/include -I/usr/lib/jvm/java-6-sun-1.6.0.13/include/linux -o JNIExample1.dll JNIExample1.c
(5) MySaifu JVM에서는 JNI용 dll 파일을 여기에 복사해줘야 한다.
/장치/프로그램 파일/Mysaifu JVM/jre/bin

posted by 신묘군

댓글을 달아 주세요