jni使用基础(四)之javah生成头文件-阿里云开发者社区

开发者社区> hudan2714> 正文

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");
}


 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
postman的基础使用
搜索进入postman官网下载客户端,或者安装谷歌浏览器postman扩展插件。
490 0
智能投顾中的基础核心,华尔街老司机手把手教你搭建智能资产配置模型
在不同的模型当中有不同的实现方式。下一节课要讲的BL模型有其他的实现方式,而在今天讲的马克维兹模型当中,通过引入一个用户的风险偏好的变量,这个变量是一个非负数的实数。
1410 0
Intellij idea使用postgresql 反向生成实例, 'Basic' attribute type should not be 'Object'
mapped type不能Object? 本人使用 intellij idea 15 , postgresql 9.4,在开发java ee 。 在用 Hibernate时, 需要用数据库表反向生成实例,数据库中部分字段,是Int4,在反转的时候会爆出错误,下面是我的测试图,有木有大牛了解,可不可给给点解决方法,【生成后手动一个个修改回来除外】,各种google过……唉,求教....   下拉框中并没有String或Integer 的选项,只有Object和序列化两种。
1053 0
JAVA对XML文件的读写(有具体的代码和解析)
XML 指可扩展标记语言(EXtensible Markup Language),是独立于软件和硬件的信息传输工具,应用于 web 开发的许多方面,常用于简化数据的存储和共享。 xml指令 处理指令,简称PI (processing instruction)。
1050 0
Swift基础--使用TableViewController自定义列表
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px; line-height:26px"> 首先建立一个swift项目,把storyboard的内容删掉,添加一个Navigation Controller,然后
933 0
+关注
102
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载