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
- 鴻蒙手機版JNI實戰(JNI開發、SO庫生成、SO庫使用)鴻蒙
- Android JNI開發系列之配置Android
- IDEA中hutool的使用Idea
- ubuntu下使用IntelliJ idea開發scalaUbuntuIntelliJIdea
- Android NDK開發之JNI基礎Android
- Android Studio NDK開發-JNI呼叫Java方法AndroidJava
- 從零開始完成一個Android JNI開發Android
- IDEA中便捷記憶體資料庫H2的最簡使用方式Idea記憶體資料庫
- 使用IDEA外掛來提升Mybatis開發效率IdeaMyBatis
- 使用IntelliJ IDEA 搭建 spring mvc開發環境IntelliJIdeaSpringMVC開發環境
- 開發工具IDEAIdea
- Java開發工具IntelliJ IDEA 2022(idea)JavaIntelliJIdea
- Intellij IDEA 中 使用 GitIntelliJIdeaGit
- JNI開發流程與引用資料型別的處理資料型別
- 在 Android 中使用 JNI 的總結Android
- idea使用maven-archetype-webapp方式建立web工程IdeaMavenWebAPP
- Webpack Proxy 代理使用更好的方式提升開發效率Web
- Flask SSTI利用方式的探索Flask
- Android開發進階——自定義View的使用及其原理探索AndroidView
- 【Hadoop】:Windows下使用IDEA搭建Hadoop開發環境HadoopWindowsIdea開發環境
- Android JNI 中的執行緒操作Android執行緒
- Android中的JNI入門實戰Android
- Android JNI開發系列之Java與C相互呼叫AndroidJava
- 前沿探索|AI 在 API 開發測試中的應用AIAPI
- 使用APICloud開發App的效能優化探索——合理使用同步/非同步介面APICloudAPP優化非同步
- 在 Intellij IDEA 中的 Debug 使用詳解IntelliJIdea
- 深入探索Chrome開發者工具:開發者的利器Chrome
- 《JDK10新特性官方文件》從JDK10中移除javah工具JDKJava
- 使用el表示式時,不能正常獲取值,使用開發工具為ideaIdea
- Intellij IDEA開發Scala程式IntelliJIdea
- Idea日常開發外掛Idea
- IntelliJ IDEA 2021 好用的Java開發工具IntelliJIdeaJava
- linux中xargs命令的使用方式Linux
- Linux中source命令的使用方式Linux
- 使用CMake構建Android JNI工程Android
- [轉載]使用IntelliJ IDEA開發SpringMVC網站(二)框架配置IntelliJIdeaSpringMVC網站框架
- 關於idea中使用註解開發springmvc 500報錯IdeaSpringMVC