在JNI開發中,首先要將創建的anroid類編譯成.h文件,編譯用到命令javah,因爲第一次用,之前對java的編譯過程也不怎麼了解,因此走了好多彎路,網絡沒有對這一步的詳細介紹,這裏講一下:java
經過DOS命令執行,(1)開始-》運行-》cmd->進入dos命令操做界面網絡
在命令行中輸入javah -classpath bin\classes -d jni com.sirc.jni.HelloWorld spa
經過輸入javah 能夠看到如下結果:
用法:javah [選項] <類>命令行
其中 [選項] 包括:blog
-help 輸出此幫助消息並退出
-classpath <路徑> 用於裝入類的路徑
-bootclasspath <路徑> 用於裝入引導類的路徑
-d <目錄> 輸出目錄
-o <文件> 輸出文件(只能使用 -d 或 -o 中的一個)
-jni 生成 JNI樣式的頭文件(默認)
-version 輸出版本信息
-verbose 啓用詳細輸出
-force 始終寫入輸出文件開發
這代表:-classpath是用來裝入類的路徑的,而前面咱們已經進入了項的根路徑d:\workspace\ar\jnitest目錄,因此-classpath只要裝載HelloWorld.class類文件的bin\classes目錄,-d用來指定輸出路徑,通常在項目根路徑下面新建一個jni文件夾用來存儲c文件,因此,-d後面輸入jni,最後是報名+類名cmd
執行事後能夠在jni文件夾下面看到生產的.h頭文件com_sirc_jni_HelloWorld.h,生成成功。it
注意:路徑必定要對應正確,我剛開始一直錄入有問題,不行的話能夠直接輸入全路徑:io
javah -classpath D:\workspace\ar\jnitest\bin\classes -d jni com.sirc.jni.HelloWorld編譯
可是我用的時候提示javah不是內部程序或外部程序,原來是環境變量中jdk的參數掉了,從新設置一下
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