最佳答案
1. 編寫範例文檔 public class TestNative{ private native static int Max(int a,int b); public static void main(String[] args) { System.out.println(Max(4,5)); } static { System.loadLibrary("VCdll"); } } 其中 LoadLibrary中的DLL檔案名稱可以隨便定.只要做好的動態連結程式庫改名成這個字串就可以了.而native函數的來源就是該動態連結程式庫. 2. 做好該步準備以後,用javac TestNative.java產生TestNative.class. 檢驗文法. 3. 語法檢查通過以後,用javah TestNative產生TestNative.h的C++標頭檔. 4. 用VC++6.0建立dll檔案: <1>msdev->new->project->win32 Dynamic-Link Library <2>Enter project name (e.g. VCdll) <3>choose "An empty DLL project"->finish <4>將3產生的TestNative.h和jdk下的jni.h和jni_md.h加入到工程中去 <5>Create a c++ file, implements the native method. as follows://TestNative.cpp#include "TestNative.h"JNIEXPORT jint JNICALL Java_TestNative_Max (JNIEnv * a, jclass b, jint x, jint y){ return x > y ? x : y;}備忘: A 其中的jni.h通常在 jdk/include/ 可以先拷貝到VC安裝目錄下的include目錄下.一勞永逸,以後可以方便使用JNI技術. B 全部的資料類型需要考慮Java和VC的介面問題.用jint jstring 等. C 函數名稱和自動產生的.h檔案中規定的一致.命名規則是: Java_使用類_方法名 6. 全編譯一下VC++工程. 如果沒有出錯,則此時產生動態連結程式庫成功. 把動態連結程式庫VCdll.dll拷貝到TestNative.java所在的目錄上. 7.運行java TestNative. OK :-)