淺談JAVA呼叫C++動態連結庫
如: public native 返回型別 方法名(引數列表);
注意,這些方法沒有方法體。。
程式中呼叫這裡的方法和呼叫平常的方法的方式是一樣的。
----------------------------------------------------------------------------------------------------------------------------------
第二步:編譯該Java檔案,得到.class檔案,將.class檔案和.java檔案放在同一個資料夾下面
而後用javah命令生成一個C++標頭檔案 Javah 類名
注意,這裡是類名,而不是檔名。。
----------------------------------------------------------------------------------------------------------------------------------
第三步:基於以生成的標頭檔案以C++語言編寫C++程式碼。。
我C++用VS2005做的,新建一個C++ WIN32專案,選中DLL。。
在.cpp原始檔中,新增上一步自動生成的標頭檔案的引用。接著就實現函式,
先複製函式簽名,在填寫函式體就可以了。編譯,生成DLL檔案
注意:
由於編譯時要用到一些Java裡面的標頭檔案,,所以應該把位於下面目錄
C:\Program Files\Java\jdk1.5.0_09\include
中的所有檔案都拷到
C:\Program Files\Microsoft Visual Studio 8\VC\include
目錄下。
上面兩個路徑依自己的機子而定
若不拷到這裡的話,也可以明確指定路徑。。
要不然會報錯,說找不jni.h檔案;
將生成的DLL檔案放在 C:\WINDOWS\system32 目錄下,或者放在與Java程式位於相同的目錄下。
----------------------------------------------------------------------------------------------------------------------------------
第四步:在java程式碼中新增程式碼以載入本機庫。
static{
System.loadLibrary("動態連結庫的名字");
}
執行程式。
---------------------------------------------------------------------------------------------------------------------------------