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是前綴,建議百度下了解后再去玩