JNI开发中Javah导出类的.h头文件的方法

  • 格式:docx
  • 大小:37.30 KB
  • 文档页数:2

JNI开发中javah导出类的.h头文件的方法,自动生成.so
分类:编程基础2012-10-29 19:20 610人阅读评论(0) 收藏举报********************************************************************************
用javah 导出类的头文件,常见的错误及正确的使用方法
********************************************************************************
正确的使用方法是:
1. 类名要使用全路径类名,不带扩展名
1. 自己要处于合适的目录,
2. 正确设置工作类路径
3. 正确设定系统类路经。

前言: 在D:\buffer\hellojni\HelloJNI\bin\classes\test\hellojni>下,有一个class 文件叫HelloJNIActivity.class 目标文件
现在欲从这个class 文件导出类的头文件。

成功案例:(打开生成的.h文件中会出现错误,解决办法:将.h文件中的函数拷贝到.c文件中,并在.c文件中将函数参数变量写出来如:JNIEXPORT jint JNICALL Java_com_dao_usbcam_Fimcgzsd_dqbuf (JNIEnv * env, jclass obj, jbyteArray null){})
--------------------------------------------------------------------------------
◆方法一
直接在eclipse中配置xx.java,然后运行javah就可以生成.h头文件
参考帖子: /mirkerson/article/details/17187109
在eclipse中自动生成.so的配置方法见:
/u013149325/article/details/40375455
方法二
D:\buffer\hellojni\HelloJNI\bin\classes\test\hellojni>cd ../../
D:\buffer\hellojni\HelloJNI\bin\classes>cd ..
D:\buffer\hellojni\HelloJNI\bin>cd ..
D:\buffer\hellojni\HelloJNI>javah -classpath
"c:\program files\Android\android-sdk\platforms\android-16\android.jar";bin/classes test.hellojni.HelloJNIActivity
--------------------------------------------------------------------------------
comment by hjj: 成功
在当前目录:D:\buffer\hellojni\HelloJNI 生成test_hellojni_HelloJNIActivity.h
--------------------------------------------------------------------------------
♦方法三
D:\buffer\hellojni\HelloJNI> cd bin\classes
D:\buffer\hellojni\HelloJNI\bin\classes>javah -classpath
"c:\program files\Android\android-sdk\platforms\android-16\android.jar";./
test.helljni.HelloJNIActivity
--------------------------------------------------------------------------------
comment by hjj: 成功
在当前目录:D:\buffer\hellojni\HelloJNI\bin\classes 生成test_hellojni_HelloJNIActivity.h --------------------------------------------------------------------------------
******************************************************************************** 下面是常见的错误。

(我碰到的错误)
1、javah com.xxx.xxxx.xx (备注:对于这种带有bao名编译后的.class文件不管是
进入bin\classes下还是建com文件-xxx文件-xxxx文件拷贝.class文件到此目录下的的操作都无法生成.h头文件)。