故事發生了
在還沒有IDE的時代,高手們還是通過記事本來編程。那時候能夠寫程序的都是牛人。能把程序寫得好的更是牛人中的牛人。
禿頭大叔的程序員形象就是在那個時候建立起來的。
還記得十幾年前的那一個春天,微風不動,太陽都羞紅了臉。因為那時候的我還在一個javac,一個java的編譯,運行着java程序。
雖然效率低下,但是看着我跑起來的一個又一個hello world,心里充滿了歡喜。
驚喜過后便是失落,java實在太難用了太復雜了,我還是回去寫C語言吧。
直到有一天,有人向我推薦了eclipse,它就像是一道閃電照亮了我前進的方向。從此什么javac,java都見鬼去吧,我只要eclipse。
很多年之后,我從eclipse轉向了IDEA,開發工具越來越趁手,然后我已經差不多快忘記了java原來還提供了一系列的java tools供我們使用。
都說要勿忘初心,於是借着JDK14的發布,我又一次回顧了java tools提供的工具,居然有了驚喜的發現。
java tools簡介
JDK14中提供了多達31中工具,慚愧的是,第一次看到它們我只認識其中的部分。士知恥而后勇,於是我奮發圖強,終於在今天將它們全都認識了。
31一個工具,這里我先簡單介紹一下,后續再針對復雜的,特別有用的工具做一個專門的說明。
以下排名僅按字母順序,不代表任何個人觀點
jaotc
一個java的靜態編譯器,為編譯好的java方法生成native代碼。
jar
jar包大家都很熟悉了,使用jar命令可以用來打包和解壓jar文件。
jarsigner
jar包打完了,使用jarsigner來對jar包做簽名和認證。
java
使用java可以運行java程序。
javac
javac用來編譯java文件,將文本文件編譯成二進制的class文件。
javadoc
javadoc可以將代碼中寫的注釋文檔生成HTML頁面供大家參考。如果你有看過JDK的源代碼的話,可以看到源代碼里面寫了很多注釋。大家可以學習一下。因為注釋很重要。
javap
java自帶的反編譯工具,可以將二進制的class文件反編譯成為人類可讀的代碼。
這個反編譯工具可能不夠IDE自帶的反編譯工具強大。
jcmd
這里的d代表的是diagnostic,通過這個命令可以對正在運行的JVM進行調試。
這是一個非常有用的調試工具,我們在后面的文章中會詳細講解。
jconsole
jconsole是一個GUI客戶端,可以對現有的java程序進行管理。
他們的連接協議是JMX。不知道為什么國內的公司好像很少用到JMX。um...這個問題等我有時間了研究一下。
jdb
Java Debugger (JDB)是一個命令行的debug工具,提供了一系列的debug程序的功能。
jdeprscan
jdeprscan是一個分析工具,用來掃描jar或者class文件中的deprecated API。
jdeps
jdeps是一個java class依賴的分析工具。
jfr
jfr是Java Flight Recorder的縮寫,jfr是java應用程序的分析工具。它可以收集JVM在運行期間所產生的一系列事件,並生成文件和分析。
后面我們會用一篇文章詳細講解JFR。
jhsdb
jhsdb是一個分析工具,可以分析正在運行的java程序中,也可以分析coredump。
jinfo
jinfo為特定的java進程生成運行時的java配置信息。
jjs
jjs用來運行Nashorn engine。
jlink
從JDK9之后,java已經模塊化了。jlink可以將模塊和他們的依賴組織起來,生成一個自定義的運行時環境。
jmap
jmap可以打印出某個java進程的堆信息。我們會在后面的文章中詳細講解。
jmod
jmod用來創建和解析JMOD文件。
jpackage
jpackage可以用來打包自運行的java程序。
jps
列出機子上面的java進程。
jrunscript
啟動一個命令行shell,這個shell支持交互和批處理模式。
jshell
一個可互動的java shell環境。
jstack
打印java stack信息,主要用在debug中。后面我們會詳細講解。
jstat
用於監控JVM的統計信息。
jstatd
jstatd是一個RMI服務程序,用來遠程監控JVM。
keytool
生成和管理密鑰,證書的工具。
rmic
用來生成遠程方法調用的stub和skeleton類。
rmid
啟動一個守護進程,允許在JVM中注冊和實例化對象。
rmiregistry
創建一個RMI對象的注冊器。
serialver
為一個或多個class生成serialVersionUID。
總結
以上的31個工具就是JDK14提供的。后面我們會挑其中幾個對我們的程序調試和定位問題非常有用的幾個工具來講解。
本文作者:flydean程序那些事
本文鏈接:http://www.flydean.com/jdk14-java-tools/
本文來源:flydean的博客
歡迎關注我的公眾號:程序那些事,更多精彩等着您!