Linux下JNI的使用 測試
首先創建一個目錄,并進入這個目錄:
$ mkdir JNITest $ cd JNITest
創建NativeJava.java文件,并加入如下內容:
public class NativeJava { static { //"NativeC"是被調用的本地動態庫,將在后面創建 System.loadLibrary("NativeC"); } public native static void printInNative(); }
然后編譯NativeJava.java文件,并生成頭文件
$ javac NativeJava.java $ javah NativeJava生成NativeJava.class和NativeJava.h兩個文件.
接下來創建NativeC.c文件,加入如下內容:
#include "NativeJava.h"include <stdio.h>
JNIEXPORT void JNICALL Java_T_printInNative(JNIEnv *env, jobject obj) { printf("Test JNI transfer C\n"); }</pre></div>
編譯NativeC.c文件,并生成動態鏈接庫(如果JAVA_HOME不存在則直接指定java所在的目錄,生成的so文件名必須以lib做前綴)$ gcc -I $JAVA_HOME/include -I $JAVA_HOME/include/linux -fPIC -c NativeC.c -o NativeC.o $ gcc -shared -Wl,-soname,libNativeC.so -o libNativeC.so NativeC.o最后創建Java測試類來調用Native方法,創建Test.java文件public class { public static void main(String[] args) { NativeJava.printInNative(); } }編譯并執行Test.java$ javac Test.java $ java -Djava.library.path=/home/cx/JNITest Test得到輸出結果: Test JNI transfer C</div>
本文由用戶 灬猜想灬 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!