IDEA開發,Jni中javah使用方式的探索
javah個人認為只是一個幫助我們便捷生成.h標頭檔案的工具而已,而不需要去build生成class什麼的,只需要.java檔案裡面的內容而已。而.java檔案裡面你寫的native方法和build之後.class檔案裡的內容並沒有不同,懷著這樣的想法,進行了下面的測試。
1.正確的做法
目錄如下,
1.開啟終端,進入java目錄(開啟終端預設是專案的根目錄,.代表當前目錄,..代表父目錄):cd ./src/main/java
2.完整的命令如下:javah -d ./jni -jni -classpath . HelloWorld.HelloJNI
下面詳細解釋這個命令:
1.使用javah:javah命令在你安裝的JDK路徑下的bin目錄裡,假如你環境變數配置正確的話, 這一步是沒有問題的
2.-jni: 使 javah 建立一輸出檔案,該檔案包含 JNI 風格的本地方法函式原型,這是預設輸出,所以 -jni 的使用是可選的。其中,-jni是javah預設的模式,所以,是可以省略的
3.-classpath: 這裡分為兩部分,第一部分是指定查詢你需要生成.h標頭檔案的.java或.class檔案的目錄,這一步經測試,在你用相對路徑時必須要在包外進行,以上圖為例,你不能進入HelloWorld路徑下進行avah -d ./jni -jni -classpath . HelloJNI命令,雖然在檔案儲存上他也是個資料夾,但在這裡面他是包pakage,其中多個路徑用“;”隔開。第二部分是指定.java或.class檔案,多個檔案用空格隔開
4.-d:生成.h標頭檔案的目錄,若不指定的話則預設為當前使用此javah命令的目錄。-d一般放在-classpath前面,因為-classpath會一直監測後面的路徑,所以如果-d在-classpath後面的話需要這麼用。javah -jni -classpath 路徑1;路徑2;等待路徑路徑;-d 儲存路徑 HelloWorld.HelloJNI等.java .class檔案
說完了之後,那麼你就能理解,最為直接的命令就是javah -classpath .(這有個點) HelloWorld.HelloJNI就能生成標頭檔案了
2.使用External Tools一鍵生成
External Tools是Intelli J工具(IDEA和Android Studio都是基於它開發的)裡提供的行動式命令工具。
File-》setting-》Tools-》External Tools進入編輯新增命令頁面
show in可以選擇它出現的地方,下面來使用它
可以看見很輕鬆的幫我們生成了標頭檔案
相關文章
- jni開發探索之旅
- IDEA Plugin 開發探索IdeaPlugin
- IDEA下JNI開發快速生成標頭檔案方法Idea
- 利用IDEA進行JNI開發:使用NDK生成Linux平臺下的so檔案IdeaLinux
- JNI/NDK開發指南(1):JNI開發流程及HelloWorld
- JNI開發流程
- 利用IDEA進行JNI開發:生成Windows平臺下的dll檔案IdeaWindows
- 鴻蒙手機版JNI實戰(JNI開發、SO庫生成、SO庫使用)鴻蒙
- Android Studio中jni的使用Android
- JNI/NDK開發指南(開山篇)
- [Android開發]Mac下NDK開發(JNI)AndroidMac
- IDEA中hutool的使用Idea
- JNI/NDK開發指南(9):JNI呼叫效能測試及優化優化
- Android JNI開發系列之配置Android
- ubuntu下使用IntelliJ idea開發scalaUbuntuIntelliJIdea
- 如何再IDEA 上使用java web開發IdeaJavaWeb
- Mac下使用IntelliJ IDEA開發ScalaMacIntelliJIdea
- 開發工具IDEAIdea
- IDEA中便捷記憶體資料庫H2的最簡使用方式Idea記憶體資料庫
- javah 命令小結Java
- Android NDK開發之JNI基礎Android
- JNI/NDK開發指南(4):字串處理字串
- 使用IDEA外掛來提升Mybatis開發效率IdeaMyBatis
- IDEA使用Maven搭建spark開發環境(scala)IdeaMavenSpark開發環境
- AndroidNDK開發系列教程6:JNI函式註冊(JNI_OnLoad)Android函式
- 前沿探索|AI 在 API 開發測試中的應用AIAPI
- Webpack Proxy 代理使用更好的方式提升開發效率Web
- Flask SSTI利用方式的探索Flask
- 從零開始完成一個Android JNI開發Android
- Native開發與JNI機制詳解
- Mac下安裝NDK,進行JNI開發Mac
- linux下JNI開發步驟詳解Linux
- Wiki 開發工具 IDE IntelliJ IDEA 使用教程IntelliJIdea
- 建立Clojure開發環境-使用IDEA和Leiningen開發環境Idea
- groovy與javah互相呼叫Java
- Android開發進階——自定義View的使用及其原理探索AndroidView
- Android JNI的基本使用(CMake)Android
- Idea 外掛開發常用的方法Idea