一、什么是JNI
JNI(Java Native Interface),是Java的SDK的一部分,JNI允许Java代码使用以其他语言编写的代码和代码库,本地程序中的函数也可以调用Java层的函数,即JNI实现了java和本地代码间的双向交互。
二、什么是Native
JDK开放给用户的远码中随处可见Native方法,被Native关键字声明的方法说明该方法不是以Java语言实现的,而是以本地语言实现的,Java可以直接拿来用。本地语言即
可以和操作系统直接交互的语言
。
三、通过JNI调用C++编写的代码
1.编写Java代码
要实现JNI需要将C++代码编译生成动态链接库,即.so文件(Linux环境下)或.dll文件(Windows环境下),生成的文件可以使用static动态加载的方法加载进来,也可以通过配置环境变量的方式。
我们首先先来编写Java示例代码,这里采用static动态加载的方法加载.so文件。
public class TestMain {
static {
System.load("/root/demo/cpp/jni/Hello.so");
}
public native static void Hello();
public static void main(String[] args) {