1. 简单demo
如果是在某个项目中有包名就需要自己找ai问问去改写下cmd命令去编译执行等
- java文件(HelloJNI.java)
public class HelloJNI {// 声明 native 方法public native void sayHello();// 加载本地库static {System.loadLibrary("hello");}public static void main(String[] args) {new HelloJNI().sayHello(); // 调用 native 方法}
}
- 编译命令
文中有中文注释 所以加上-encoding utf-8
javac -encoding utf-8 HelloJNI.java
javac -encoding utf-8 -h . HelloJNI.java
- c文件(HelloJNI.c)
#include <jni.h>
#include <stdio.h>
#include "HelloJNI.h"JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject obj) {printf("Hello from C!\n");
}
- 执行
gcc -shared -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" -o hello.dll HelloJNI.c
只要留着这红线的即可,其他文件没啥用了已经
java HelloJNI
2. springboot中配置
链接
3. 部署注意点
在本地保留dll文件,在linux就是.so文件lib是前缀,建议百度下了解后再去玩