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
posted @ 2014-08-24 17:11  谭小羽  阅读(129)  评论(0编辑  收藏  举报