JDK14中的java tools簡介


故事發生了

在還沒有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。

從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的博客

歡迎關注我的公眾號:程序那些事,更多精彩等着您!


免責聲明!

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



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