Java Native Interface (JNI) 是 Java 的一个功能,它允许 Java 代码与本地代码(如 C、C++)进行交互
要使用 JNI,你需要遵循以下步骤:
native
关键字声明一个方法,该方法的实现将在本地代码中完成。public class MyClass {
public native void myNativeMethod();
}
javah
工具根据 Java 类生成 C 语言头文件。这个头文件包含了本地方法的签名。javah -jni MyClass
libjvm.so
或 jvm.dll
)。#include <jni.h>
#include "MyClass.h"
JNIEXPORT void JNICALL Java_MyClass_myNativeMethod(JNIEnv *env, jobject obj) {
// 本地方法的实现
}
.so
或 .dll
)。在编译时,需要指定 Java 的头文件和库文件路径。gcc -shared -fPIC -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux MyClass.c -o libmynative.so
System.loadLibrary()
或 System.load()
方法加载动态链接库。public class MyClass {
public native void myNativeMethod();
public static void main(String[] args) {
System.loadLibrary("mynative");
MyClass myClass = new MyClass();
myClass.myNativeMethod();
}
}
libmynative.so
或 mynative.dll
)位于 Java 库路径(java.library.path
)中,然后运行 Java 程序。注意:这里的示例是针对 Linux 系统的。对于 Windows 系统,你需要将动态链接库编译为 .dll
文件,并在加载时使用 System.loadLibrary()
方法。在 macOS 上,你需要将动态链接库编译为 .dylib
文件。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。