创建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调用会出错。