Java Native Interface 本地接口 JNI

更多 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 
/* 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

4. 使用 C++ 实现本地方法 JNIClass.cpp

5. 将 C++ 实现生成动态链接库

你可能感兴趣的:(Java Native Interface 本地接口 JNI)