class helloworld {
private native void print();
public static void main(String[] args) {
new helloworld().print();
}
static {
System.loadLibrary("helloworld");
}
}
2. 打開cmd,利用javah產生header檔
// 因為我的jdk是10,把javah拿掉了 所以這樣使用 ,10以前 javah -jni xxxx
javac -h . helloworld.java
3. 產生header檔之後,打開來看,會發現有一段 JNIEXPORT void JNICALL Java_helloworld_print
(JNIEnv *, jobject); 這個就是要寫在C++裡面的方法,供java呼叫
新增 helloworld.cpp
#include
#include
#include "helloworld.h"
JNIEXPORT void JNICALL
Java_helloworld_print(JNIEnv *env, jobject obj)
{
printf("哈囉哈囉世界!\n");
return;
}
4. 下載mingw64 (連結)
載完安裝後,打開cmd,輸入 gcc 看有沒有指令,沒有的話要自己新增環境變數
gcc路徑 : C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin (不一樣的話要改)
5. 打開cmd 輸入指令 ,輸出dll檔
gcc -I "C:\Program Files\Java\jdk-10.0.2\include" -I "C:\Program Files\Java\jdk-10.0.2\include\win32" -shared -o helloworld.dll helloworld.cpp
6. class檔和dll檔放在同一個目錄下, cmd輸入 java helloworld 即可成功從java呼叫使用c方法
使用gcc編譯C語言
Source Code : https://github.com/tks3589/BloggerCode/tree/master/java/jjj
沒有留言:
張貼留言