標籤:java jni 64位 c++
上篇文章中,在產生標頭檔的時候出了個岔子,好在功夫不負有心人,最終困難被克服了!
下面我接著來寫步驟二的第9)步:
步驟二:
9)設定64位編譯平台:
開啟Microsoft Visual Stutio 2008--->File--->New--->Project...--->
OK--->Next--->
Finish後會產生一個空項目:
預設是採用Win32平台,而我的作業系統是64位的,所以:
點擊Configuration Manager...
預設如所示:
new 一個新的platform:
到此為止,64位編譯平台已經設定好。
10)用c++實現sayHello()方法並將源檔案編譯成sayhello.dll動態連結程式庫:
將上篇文章中費了九牛二虎之力產生的標頭檔,拷貝到sayhello項目下:
選中sayhello項目下的Header Files--->右鍵Add--->Existing Item...--->選中中的com_ryze_jni_test_HelloWorld.h--->這樣標頭檔就加入到了工程中:
點擊可以看到標頭檔中聲明了一個名字很長叫做Java_com_ryze_jni_test_HelloWorld_sayHello的函數,這個函數的命名規則是Java_包名_類名_方法名
接下來就是選中項目下的Source Files--->右鍵Add--->New Item...--->
建立一個名字為source的c++空檔案
在空檔案中寫下代碼如下:
#include<iostream>#include"com_ryze_jni_test_HelloWorld.h"using namespace std;JNIEXPORT void JNICALL Java_com_ryze_jni_test_HelloWorld_sayHello(JNIEnv *, jobject){cout<<"Hello World !"<<endl;}
然後開啟標頭檔,將標頭檔中
改寫成:
然後將JDK的include目錄
C:\Program Files\Java\jdk1.7.0_45\include
下的jni.h和目錄
C:\Program Files\Java\jdk1.7.0_45\include\win32
下的jni_md.h拷貝到項目源檔案目錄下
然後編譯:
編譯成功,此時在debug目錄下產生我們需要的sayhello.dll檔案:
11)將產生的sayhello.dll動態連結程式庫加入到PATH環境變數下:
12)在java中調用動態連結程式庫中的sayHello()方法:
Java學習篇之---JNI簡單實現(續)