JNI中javah命令的使用,生成.h的頭文件


cd D:\AndroidWork\NdkTest\bin\classes
javah -jni com.example.ndktest.MainActivity

參考:http://blog.sina.com.cn/s/blog_6e4511450100yq3d.html 

 最近一直在折騰這個JNI和Android NDK,今天通過javah生成h文件時遇到各種問題。不管是javah -classpath參數啊還是別的什么,一直都無法成功通過class文件生成h文件。經過一個多小時的查詢也探索,現在終於成功編譯出來了~

    調用javah文件時,需要在cmd命令行模式里面進入bin文件夾,里面存放着工程中所有的.class文件。隨后調用:javah -classpath . -jni 包名.類名。

例:

javah -classpath . -jni com.buaa.testjni.TestJNI

    此時就可以調用成功,生成對應的.h文件。

    現在我在嘗試寫出自己的JNI接口程序,繼續努力啊……!

////////////////////////////////////////////////////////

PS:本人需要進入classes目錄才行。如:

cd D:\AndroidWork\NdkTest\bin\classes
javah -classpath . -jni com.example.ndktest.MainActivity


此時會生成一個.h的C/C++頭文件,默認是C語言的。


為什么加-classpath .呢?原來我安裝JDK的時沒有配置CLASSPATH的 . 路徑,默認執行javah所在目錄為JAVAHOME/lib  ,所以lib目錄下怎么會有com.example.... ?


又所以,馬上更正環境變量

CLASSPATH 
 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

關掉CMD,重新打開測試


成功生成.h頭文件,放到jni目錄去吧, 去實現你接口的內容。快哭了



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM