public class Main {
// static {
// System.loadLibrary("dlltest");
// }
public static void main(String[] args) {
System.out.println(sum(100, 2));
}
//本地方法使用native关键字标记,无需任何实现,交给C语言实现
public static native int sum(int a, int b);
}
编译运行,生成相应的字节码文件
javah -classpath out/production/qingkong -d ./jni Main
控制台输入相应的语句(qingkong是B站up主青空霞光,感兴趣的可以去关注一下)
回车后idea项目刷新一下会出现以下页面
下载一个devc++
打开devc++
文件->新建->项目
点击确定,保存到一个相应的文件夹下
保存完后会自动出现以下两个文件
dll.h文件注释掉一段代码
dllmain.c注释掉这段代码
编写相应的代码
JNIEXPORT jint JNICALL Java_Main_sum
(JNIEnv * env, jclass c , jint a, jint b){
return a + b;
};
dllmain.c还要加上相应的头文件
#include "jni.h"
然后运行的话还需要两个文件jni.h文件和jni_md.h
jni.h在你所下的jdk文件里面,windows文件路径(如下)
jni_md.h在win32里面
将jni.h和jni_md.h复制到刚刚C语言(dll)项目路径下
然后回devc++里面编译保存确定,会出现一个后缀为dll的文件(我之前弄过一遍所以出现了两个dll文件,你们的话应该只有一个)
将这个文件复制粘贴到idea项目下
dll文件和其它几个文件是同级的,取消静态代码块的注释
然后就可以运行了
结果: