01,java中要写上要调用的方法
public native static void getStringFromC();
02,生成头文件 javah
cmd---切换到src 目录下
输入javah -classpath . -jni com.xxx.xxxx.JniTest
这样就能得到.h文件了
03.讲头文件导入vs里面的头文件里面
先把.h文件放入 vs工程目录里面去,然后点头文件添加现有项
导入都会发现#include <jni.h>爆红 ----可以去jdk目录中搜索jni.h 文件
将其添加现有项 改为#include "jni.h" (因为这个文件不是系统的,系统的都是<>)
还需要导入jni_md.h文件
04.实现.h文件里面的函数
.c文件中要:
#include "com_xxx_xxxx_JniTest.h"
//函数实现
JNIEnv *env 2级指针
C的函数名称:Java _完整类名(包名)_ 函数名称
JNIEXPORT jstring JNICALL Java_xxxxxxxx_xxxxxxxxx_getStringFromC
(JNIEnv *env ,jclass jcls){
//返回一个字符串
//将c的字符串转换为一个java的字符串
return (*env)->NewStringUTF(env,"c string");
}
5.生成一个dll动态库文件
DeBug 窗口 配置管理器-----活动解决方案 ---平台-----x64
vs 右面窗口 点击根目录右键 ----属性----配置类型------生成dll动态库---应用
在然后 生成-----生成解决方案
6.java 中加载dll动态库
static {
System.loadLibrary("jni study);
}