Javah生成JNI头文件

时间:2022-11-21 17:14:59

首先确保java的环境变量配置好了。

1:打开cmd 进入doc命令窗口:

进入class所在目录,我的class是在F:\summerVacation\ndkhelloworld\bin\classes(不要跟包名)

Javah生成JNI头文件

我项目class文件的根目录(后面是包名及class文件): 包名为(com.pl.demo1)

Javah生成JNI头文件

3. 执行javah - jni com.pl.demo1.MainActivity(com.pl.demo1是包名 有包名必须跟包名)

Javah生成JNI头文件

4.在F:\summerVacation\ndkhelloworld\bin\classes生成了我们所要的文件(com_pl_demo1_MainActivity.h):

Javah生成JNI头文件

5.复制到我们项目的(生成文件具体如下所示):

Javah生成JNI头文件

6.下面我要在Hello.c中使用 (引入生成的.h文件,拷贝方法签名):

#include <stdio.h>
#include <jni.h>
#include "com_pl_demo1_MainActivity.h" JNIEXPORT jstring JNICALL Java_com_pl_demo1_MainActivity_getHelloString
(JNIEnv * env, jobject obj){
return (*(*env)).NewStringUTF(env,"1.hello world!");
}
JNIEXPORT jstring JNICALL Java_com_pl_demo1_MainActivity_get_1Hello_1String
(JNIEnv * env, jobject obj){
return (*env)->NewStringUTF(env,"2.__hello___!");
}