首先在類別裡撰寫方法,此方法不實作(implement),且在存取修飾詞(access modifier)後加上native字眼。 接下來,利用JDK工具(javah)產生C++程式所需的標頭檔(head file)。 native方法的實作是在C++的.cpp檔中敘述。 為了存取native方法實作內容,必須在使用前先載入Visual C++ 6.0編輯後的.dll檔案。 利用兩個數字的加法為例子,來說明撰寫JNI程式的流程。 1.撰寫Java程式碼 public class JNIMath{ public native int addTwoNumber(int one, int two); static { System.loadLibrary(“JNIMath”); } public static void main(String [] args){ JNIMath math = new JNIMath(); int num1, num2, sum; num1=1; num2=2; sum =math.addTwoNumber(num1, num2); System.out.println(num1+”+”+num2+”=”+sum); } } 2.編譯(Compiler)Java程式碼,且執行JDK工具(javah)來產生檔頭檔 >javac JNIMath.java >javah JNIMath 3.利用Visual C++ 6.0來產生Java執行時所需要的JNIMath.dll 3.1先開啟win32 Dynamic-Library Library類型的專案 選An empty DLL project,按Finish,再按Ok。 3.2加入JNIMath.h 3.3新增JNIMath.cpp檔案,並在JNIMath.cpp中實作addTwoNumber的內容 #include "JNIMath.h" JNIEXPORT jint JNICALL Java_JNIMath_addTwoNumber (JNIEnv * ,jobject, jint one, jint two) { return (one+two); } 3.4編譯C++程式 4.將編譯成功後的JNIMath.dll與JNIMath.class放置同一個檔案夾內, 執行Java程式。 >java JNIMath 完成兩個數字加法。 P.S 1.用Visual C++ 2005 Express 也可以完成此範例。 2.將C:\Java\jdk1.5.0_08\include下的檔案拷貝一份到C:\Program Files\Microsoft Visual Studio\VC98\Include
由...發表 fish1217
@ 12:00 上午 CST