更多 Java 高级知识方面的文章,请参见文集《Java 高级知识》
Java Native Interface 本地接口 JNI
允许 Java 代码与其他语言的代码进行交互,例如 C,C++。
1. 定义 Java 类,是用 native 关键字将某个方法声明为本地方法
public class JNIClass {
// 声明为本地方法,无需实现
public native void f();
// 加载类时首先加载 C 语言的库
static {
System.loadLibrary("JNILib");
}
}
2. 编译该类,得到 JNIClass.class 文件
3. 通过命令 javah JNIClass 来生成头文件 JNIClass.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class JNIClass */
#ifndef _Included_JNIClass
#define _Included_JNIClass
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: JNIClass
* Method: f
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_JNIClass_f
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif