測試JNI的使用方法java
開發環境須要Java SDK(官網下載),下載完後安裝Java SDK。windows
編譯使用的MinGW,64位的官網能夠找到下載地址。oracle
在任意地方新建一個目錄,保存這個項目,而後新建一個src目錄,用於存放源文件。由於Java有包的概念,因此進入src目錄後,根據包名的層次,依次創建相應目錄,而後新建Java源程序文件,好比:工具
1 package test.jni; 2 3 public class JniTest { 4 5 public native void callme(); 6 7 public static void main(String[] args) { 8 System.out.println("test jni"); 9 new JniTest().callme(); 10 } 11 12 static { 13 System.loadLibrary("jt"); 14 } 15 }
編譯Java代碼,生成class文件。而後使用javah工具生成c語言頭文件,命令以下:測試
javah test.jni.JniTest
這時目錄下會生成一個以包名命名的.h文件,接下來新建一個c源程序jni.c,內容以下:spa
1 #include "jni.h" 2 #include "test_jni_JniTest.h" 3 4 JNIEXPORT void JNICALL Java_test_jni_JniTest_callme 5 (JNIEnv *jEnv, jobject o) 6 { 7 printf("from c\n"); 8 }
c源程序裏引用了JDK裏的一個頭文件jni.h,在JDK安裝目錄下的include目錄裏,jni.h裏引用了另外一JDK頭文件jni_md.h,在include目錄的win32目錄裏,因此編譯時加上這兩個搜索地址.net
gcc -Wall -shared -I"D:\Program Files\Java\jdk1.8.0_91\include" -I"D:\Program Files\Java\jdk1.8.0_91\include\win32" -o jt.dll jni.c
這時,項目目錄下就會生成一個jt.dll文件code
下面就能夠執行class文件,查看結果了。blog
java test.jni.JniTest
正常狀況下,會在控制檯輸出開發
test jnifrom c