創建JNI類
在JNI類裏面聲明需要加載的dll
static {
System.loadLibrary("JNIDLL");
}
方法在JNI類裏面聲明爲native
public native void displayImg();
藉助javah生成對應頭文件
配置Idea的extension tool, 一鍵生成JNI頭文件,或者敲命令生成JNI頭文件(javah)
配方:
Program: $JDKPath$/bin/javah
Parameters: -jni -classpath $OutputPath$ -d ./jni $FileClass$
Working directory: $ProjectFileDir$
注意,使用javah前必須先編譯一邊,否則生成的頭文件是空的。因爲javah接收的是.class
寫C++代碼,編譯成dll
根據生成的頭文件,實現對應的C++文件,然後用gcc編譯成dll
或者用vs新建win32 DLL工程,導入剛剛的頭文件,新建cpp文件實現。
將jni.h的路徑(%JAVA_HOME%\include\win32; %JAVA_HOME%\include)加入項目的“包含目錄”.
編譯運行,得到dll文件。
注意編譯的時候對應jdk的版本選擇64位或者32位編譯,否則Java調用會出錯。