JNI调用C++代码
JNI调用 windows和linux步骤
1、用java IDE 编写接口 ,接口如下
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"头文件也一同放入创建的工程中 ,然后执行下面步骤,添加现有项
2)点击源文件,添加新项,选择*.cpp文件结尾的文件,打开刚刚生成的*.h文件,把接口复制过来,实现接口
3)点击重新生成后,可能会报错,说什么编译 未以什么结尾,选择文件,右击属性,预编译头,不使用预编译头
4)重新生成后,项目会生成x64文件夹里面,里面会有个 nativecpp.dll动态库
5)java调用代码如下
LInux jni调用so文件库
1) 编写jni_linux.cpp文件
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