1. 程式人生 > >淺談JAVA呼叫C++動態連結庫

淺談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("動態連結庫的名字");
     }

 執行程式。

 ---------------------------------------------------------------------------------------------------------------------------------