Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码

Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码

1.我们使用的工具是 IntelliJ IDEA 2018(编写java代码)和VisualStudio 2019(编写Native方法)。

2.首先我们先使用VisualStudio 2019编写Native方法
1)创建项目
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第1张图片
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第2张图片
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第3张图片
2)配置.txt文件:默认生成的是可执行文件,但是此处我们要生成动态库,因此将默认的配置注释掉。添加新的配置。
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第4张图片
修改之后输入快捷键 " Ctrl+Shift+B “,编译项目,生成动态库。
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第5张图片
查看项目的本地目录下是否生成 项目名.dll 动态库
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第6张图片
配置 jni.h头文件
找到本地JDK配置路径
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第7张图片
查找到JDK文件中include和win32目录
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第8张图片
将两个目录配置到.txt文件中
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第9张图片
3)编写项目名.cpp文件
在项目名.cpp中导入JNI头文件
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第10张图片
之后编译(” Ctrl+Shift+B ")生成,没有报错就说明成功导入。

编写需要在Java中调用的Native方法。
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第11张图片
之后编译(" Ctrl+Shift+B ")生成,没有报错的话,Native方法就算是编写成功了。

3.使用IntelliJ IDEA 2018编写Java代码。

public class Demo2 {

    //定义一个Native方法
    public native void jniTest(int i, String s);

    //加载动态库的绝对路径
    static {
        System.load("D:\\VisualStudio\\project\\CMakeProject2\\out\\build\\x64-Debug (默认值)\\CMakeProject2\\CMakeProject2.dll");
    }

    public static void main(String[] args) {
        Demo2 demo2 = new Demo2();
        demo2.jniTest(2, "Hello JNI");
    }

}

输出:
Java_study_Demo2_jniTest : 2 , Hello JNI

动态库文件位置:
Visual Studio 2019 使用 CMake 开发 JNI 动态库实现JAVA调用本地代码_第12张图片

整理借鉴了很多大佬写的,在此无法一一说明,这只是个人用来查漏补缺的文章,如果对你有帮助我很高兴。

你可能感兴趣的:(C语言方面,java,jni,cmake,c++,dll)