一、基础概念
1、JNI(Java Native interface):sun公司提供的JNI是Java平台的一个功能强大的接口,实现java和操作系统本地代码的相互调用功能,系统本地代码通常是由其他语言编写的,如C++。
二、JNI使用步骤
1、定义一个Java的native方法。
2、使用jdk的javah工具,生成包含native方法类的C/C++头文件(.h)。
3、按照生成的C/C++头文件(.h),来写C/C++源文件(.cpp)。
4、编译C/C++源文件生成动态链接库(DLL)。
5、将DLL文件放到系统环境变量PATH配置的路径下(如:jdk的bin或者自己新增一个路径专门放DLL文件)。
6、Java加载DLL文件,调用native方法。
三、完整过程示例
1、创建Java项目,编写一个带有native的类
package cn.test;
public class TestJni {public native void sayHello();
}
2、编译上java文件,通过javah生成C++头文件
(1)、点击compile,编译项目,生成class文件
(2)、进入编译项目的target/classes目录下,通过javah生成头文件
命令:javah cn.test.TestJni
说明:TestJni指的是TestJni.class文件,不是TestJni.java文件,一定要先编译。
如果还有路径层级,使用.连接。如: cn.zw.test.TestJni
(3)、查看头文件
3、创建C++的动态DLL项目,生成DLL文件
(1)、下载Visual Studio 2022工具(其他版本也行,能编译运行C++项目即可),如下标
(2)、新建项目,选择DLL动态链接库,点击下一步
(3)、配置项目如下图,项目名称无需一致,点击创建