- 1、jdk是什麼東西啊,可以幹什麼嗎?
- 2、linux中怎麼使用javah命令生成jni頭文件
- 3、javah是什麼意思
- 4、菜鳥問題: jdk, jar, javaw, javac, javah分別是什麼??
- 5、jni中用javah生成的頭文件有什麼作用
jdk安裝好配置環境變量後,系統就承認了 java,javac等命令,當編譯好java文件,就可以在開始——運行——cmd的dos系統下運用指定命令運行java文件。
JDK 是整個Java的核心,包括了Java運行環境,Java工具和Java基礎的類庫。
JDK包含的基本組件包括:
javac – 編譯器,將源程序轉成字節碼
jar – 打包工具,將相關的類文件打包成一個文件
javadoc – 文檔生成器,從源碼注釋中提取文檔
jdb – debugger,查錯工具
java – 運行編譯後的java程序(.class後綴的)
appletviewer:小程序瀏覽器,一種執行HTML文件上的Java小程序的Java瀏覽器。 Javah:產生可以調用Java過程的C過程,或建立能被Java程序調用的C過程的頭文件。 Javap:Java反彙編器,顯示編譯類文件中的可訪問功能和數據,同時顯示字節代碼含義。 Jconsole: Java進行系統調試和監控的工具
總之,jdk並不是一個應運軟件,並不能從哪裡運行。編譯時在任何可輸入文本的軟件中均可(通常用.txt記事本編譯),編譯好後改名.java文件,在dos系統中用 javac命令編譯連接 java命令 .運行。
java程序
rk3288/frameworks/base/media/java/android/media/MediaScanner.java
文件中class 為public class MediaScanner
正常編譯後會在rk3288/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes/android/media目錄下生成MediaScanner.class文件。
我們進入rk3288/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes目錄,使用如下命令生成jni頭文件:
classes]$ javah -classpath . -jni android.media.MediaScanner
classes]$ ls android_media_MediaScanner.h
android_media_MediaScanner.h
Javah:產生可以調用Java過程的C過程,或建立能被Java程序調用的C過程的頭文件。
jdk 是java 開發工具包。 簡單來說 ,是開發java 的一個必備工具。
jar 是 java 開發完成之後,打包的結果 類似 程序的 .dll 或者 .exe
javaw 是java 運行環境中的 一個工具, 用於啟動 java 或者 jar 程序。 其作用是隱藏控制台的方式, 運行java 程序。
javac 是java 開發工具包(jdk) 其中的一個工具, 用於編譯 java 文件, 產生可運行的 .class java 字節碼文件。\
javah 是java語言 C 頭文件和 stub 文件生成器。 主要用於 java做本地調用的時候。 產生C語言的頭文件。
javaw 多數是用於運行 Swing 。 或者不需要控制台的可視化程序。 比如。運行 jar 文件。
javaw -jar jar文件名稱
如果運行java 文件。 只要編譯好產生.class 字節碼文件
然後
javaw .class文件名
調用方式,和java 命令是一樣的。 區別只是不產生控制台。
Java中本地方法(native 修飾)可通過javah來生成頭文件,你可以在這個頭文件里實現java中定義的方法,然後你需要將生成的頭文件編譯,如DOS下編譯得到動態連接庫存XXX.dll,你在使用JAVA定義的那個本地方法時 需要加載這個dll庫 然後你就可以像調其它JAVA一樣調你定義的那個類的本地方法。對於已經編譯過的頭文件,你刪除了也不會有什麼影響的,只要你的dll文件還在就行!
純手工,望採納!
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/126520.html