在第二步中,我们将生成头文件。

/* 请勿修改此文件 - 它由机器自动生成 */
#include <jni.h>

/* com_lucyfyr_HelloWorld类的头文件 */
#ifndef _Included_com_lucyfyr_HelloWorld
#define _Included_com_lucyfyr_HelloWorld

#ifdef __cplusplus
extern \"C\" {
#endif

/*
 * 类: com_lucyfyr_HelloWorld
 * 方法: printJNI
 * 签名: (Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_lucyfyr_HelloWorld_printJNI
  (JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}
#endif

#endif
</jni.h>

执行以下命令,使用javah工具根据com.lucyfyrHelloWorld类生成头文件:

javah -jni com.lucyfyrHelloWorld

需要注意的是,指向JNIEnv类型的指针实际上是指向一个函数指针表的指针,该表存储了JNI函数的地址。