JNI入门
====================================
0. edit ./src/HelloWorld.java
1. javac ./src/HelloWorld.java (生成HelloWorld.class)
2. export PATH=$PATH:/usr/java/jdk1.6.0_45/bin/
javah -jni com.magc.jni.HelloWorld (要在正确的路径下javah,生成com_magc_jni_HelloWorld.h)
#include <jni.h>
#include "com_magc_jni_HelloWorld.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_com_magc_jni_HelloWorld_DisplayHello
(JNIEnv *env, jobject obj)
{
printf("From jni_helloworldImpl.cpp :");
printf("Hello world ! \n");
return;
}
3.编译生成动态库libHello.so,
命令:g++ -shared -I /usr/java/jdk1.6.0_45/include -I /usr/java/jdk1.6.0_45/include/linux jni_helloworldImpl.cpp -o libHello.so
gcc -fPIC -I /usr/java/jdk1.6.0_45/include -I /usr/java/jdk1.6.0_45/include/linux -shared -o libHelloNative.so jni_helloworldImpl.cpp
gcc -fPIC -I /usr/java/jdk1.6.0_45/include -I /usr/java/jdk1.6.0_45/include/linux -shared -o libHelloNative.so HelloNative.c
4.具体实现的动态库后,就可以运行JAVA调用JNI程序类的native方法了,
命令:java -Djava.library.path=. com.magc.jni.HelloWorld