JNI调用C++代码

JNI调用 windows和linux步骤

1、用java IDE 编写接口 ,接口如下

JNI调用C++代码

2、用maven编译工具编译成class,用cmd进入黑窗口target/class目录,然后用命令javah -jni com.jlyc.NativeCpp,此时会生成一个头文件com_jlyc_NativeCpp.h

 

Windows生成dll,然后jni调用windows动态库:如下

1)用vs2019创建c++动态项目,然后把刚刚生成的.h文件夹放入创建的项目中,同时把stdafx.h和 targetver.h放入项目中,同时把JDK下include文件夹下的"jni.h"和include下win32文件夹下的"jni_md.h"头文件也一同放入创建的工程中 ,然后执行下面步骤,添加现有项

JNI调用C++代码

2)点击源文件,添加新项,选择*.cpp文件结尾的文件,打开刚刚生成的*.h文件,把接口复制过来,实现接口

JNI调用C++代码

3)点击重新生成后,可能会报错,说什么编译 未以什么结尾,选择文件,右击属性,预编译头,不使用预编译头

JNI调用C++代码

4)重新生成后,项目会生成x64文件夹里面,里面会有个 nativecpp.dll动态库

5)java调用代码如下

JNI调用C++代码

 

LInux jni调用so文件库

1) 编写jni_linux.cpp文件

JNI调用C++代码

2)上传linux中,安装gcc编译环境yum install gcc-c++,同时把生成的com_jlyc_nativecpp.h放入该目录中

3)生成so动态库文件

   g++ -fPIC -c jni_linux.cpp -I /data/jdk1.8/include/ -I /data/jdk1.8/include/linux/

       

    g++ -shared jni_linux.o jni_linux.so

4)编写代码,生成jar文件,执行java -jar jna....jar

JNI调用C++代码

 

JNI调用C++代码