jni使用基础(四)之javah生成头文件

简介:

 

javah使用:帮助我们生成头文件的工具

 

怎样使用javah?

1.先在命令行下运行:javah。如果能执行java而不能执行javah,就需要配置环境变量。

2.cd进入到java的目录文件下,先用javac把.java文件生成.class文件。

3.在.class文件目录下执行javah,生成头文件(注意:.class文件要在相对应的包目录结构下)

如:用eclipse的工程,在bin/classes目录下com/devchina/ndk/DevActivity,需要在classes的目录下使用:

       javah com.devchina.ndk.DevActivity生成.h文件

 

怎样使用javah生成的头文件?

通过javah生成的头文件为:包名+类名.h 的文件。

把.h拷贝到jni目录下,并根据.h中生成的内容,编写相应的.c文件。(注意:要在c文件开头include"*.h"文件)

然后再写Android.mk文件。通过Ndk进行编译,生成.so文件。

最后在相应的java类中,load相应的so文件。

 

例:

#include<stdio.h>
#include<jni.h>
#include"com_hd_ndk2_DemoActivity.h"

JNIEXPORT jstring JNICALL Java_com_hd_ndk2_DemoActivity_hello
  (JNIEnv * env, jobject clazz){

	return (*env)->NewStringUTF(env,"hello");
}


 

目录
相关文章
|
IDE 编译器 程序员
深入理解C程序的#include和头文件,让c工程只有.h文件(狗头)
深入理解C程序的#include和头文件,让c工程只有.h文件(狗头)
514 0
|
Linux API C语言
编译参数中如何包含头文件和动态链接库
GCC编译参数:如何包含头文件和动态链接库
62 0
|
Java Android开发 iOS开发
|
Java
JNI学习(1)——生成对应的头文件
JNI学习(1)——生成对应的头文件
326 0
JNI学习(1)——生成对应的头文件
|
IDE Java 开发工具
JNI学习(2)——生成动态链接.dll文件
JNI学习(2)——生成动态链接.dll文件
149 0
JNI学习(2)——生成动态链接.dll文件
|
Java Unix Linux
JNI学习(0)——关于JNI
JNI学习(0)——关于JNI
132 0
JNI学习(0)——关于JNI
|
编译器 C++ 开发者
头文件.h、动态链接库.dll、静态链接库.lib的区别与应用总结
头文件.h、动态链接库.dll、静态链接库.lib的区别与应用总结
959 0
头文件.h、动态链接库.dll、静态链接库.lib的区别与应用总结
|
Java Android开发 C++
【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(一)
【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(一)
194 0
【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(一)
|
Java Android开发 C++
【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(二)
【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(二)
177 0
|
Android开发 Java C语言
javah生成头文件
编写native方法,如: package com.example.renzhenming.appmarket.ui.selectimage; import android.
1212 0