java如何引入jni
引入JNI的步骤
配置Java环境 确保Java开发环境已正确安装,包括JDK和JRE。检查JAVA_HOME环境变量是否指向JDK安装路径。
编写Java类
创建一个包含native方法声明的Java类。使用native关键字标记方法,表明其实现将由本地代码提供。
public class NativeExample {
public native void sayHello();
static {
System.loadLibrary("NativeExample");
}
}
生成头文件
使用javac编译Java类,然后使用javah生成对应的C/C++头文件。生成的头部文件包含JNI方法签名。
javac NativeExample.java
javah -jni NativeExample
实现本地代码 根据生成的头文件实现本地方法。使用C或C++编写函数体,确保函数签名与头文件一致。
#include "NativeExample.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_NativeExample_sayHello(JNIEnv *env, jobject obj) {
printf("Hello from JNI!\n");
}
编译本地代码 将本地代码编译为动态链接库。不同平台使用的编译器和命令可能不同。
# Linux示例
gcc -shared -fPIC -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux NativeExample.c -o libNativeExample.so
# Windows示例
cl -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" -LD NativeExample.c -FeNativeExample.dll
运行Java程序
确保动态链接库位于Java库路径中,可以通过-Djava.library.path指定路径。运行Java程序调用本地方法。

java -Djava.library.path=. NativeExample






