Android JNI开发生成.h头文件问题(转)
在JNI開(kāi)發(fā)中,首先要將建立的anroid類編譯成.h文件,編譯用到命令javah,由于第一次用,以前對(duì)java的編譯過(guò)程也不怎么了解,所以走了好多彎路,網(wǎng)絡(luò)沒(méi)有對(duì)這一步的詳細(xì)介紹,這里講一下:
通過(guò)DOS命令執(zhí)行,(1)開(kāi)始-》運(yùn)行-》cmd->進(jìn)入dos命令操作界面
在命令行中輸入javah -classpath bin\classes -d jni com.sirc.jni.HelloWorld?
通過(guò)輸入javah 可以看到以下結(jié)果:
用法:javah [選項(xiàng)] <類>
其中 [選項(xiàng)] 包括:
??????? -help???????????????? 輸出此幫助消息并退出?
??????? -classpath <路徑>???? 用于裝入類的路徑?
??????? -bootclasspath <路徑> 用于裝入引導(dǎo)類的路徑?
??????? -d <目錄>???????????? 輸出目錄?
??????? -o <文件>???????????? 輸出文件(只能使用 -d 或 -o 中的一個(gè))?
??????? -jni????????????????? 生成 JNI樣式的頭文件(默認(rèn))?
??????? -version????????????? 輸出版本信息?
??????? -verbose????????????? 啟用詳細(xì)輸出?
??????? -force??????????????? 始終寫入輸出文件
這表明:-classpath是用來(lái)裝入類的路徑的,而前面我們已經(jīng)進(jìn)入了項(xiàng)的根路徑d:\workspace\ar\jnitest目錄,所以-classpath只要裝載HelloWorld.class類文件的bin\classes目錄,-d用來(lái)指定輸出路徑,一般在項(xiàng)目根路徑下面新建一個(gè)jni文件夾用來(lái)存儲(chǔ)c文件,所以,-d后面輸入jni,最后是報(bào)名+類名
執(zhí)行過(guò)后可以在jni文件夾下面看到生產(chǎn)的.h頭文件com_sirc_jni_HelloWorld.h,生成成功。
注意:路徑一定要對(duì)應(yīng)正確,我剛開(kāi)始一直錄入有問(wèn)題,不行的話可以直接輸入全路徑:
javah -classpath D:\workspace\ar\jnitest\bin\classes -d jni com.sirc.jni.HelloWorld
?
但是我用的時(shí)候提示javah不是內(nèi)部程序或外部程序,原來(lái)是環(huán)境變量中jdk的參數(shù)掉了,重新設(shè)置一下
?
path中添加:C:\Program Files (x86)\Java\jdk1.6.0_18\bin;C:\Program Files (x86)\Java\jre6\bin
classpath新建或添加:C:\Program Files (x86)\Java\jdk1.6.0_18\lib\dt.jar;C:\Program Files (x86)\Java\jdk1.6.0_18\lib\tools.jar
java_home新建:C:\Program Files (x86)\Java\jdk1.6.0_18
?
?
轉(zhuǎn)自:http://www.cnblogs.com/gisdream/p/3521090.html
轉(zhuǎn)載于:https://www.cnblogs.com/YangBinChina/p/4538545.html
總結(jié)
以上是生活随笔為你收集整理的Android JNI开发生成.h头文件问题(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 虚幻4——随笔
- 下一篇: jQuery的preventDefaul