1. 程式人生 > 程式設計 >解析JDK14中的java tools簡介

解析JDK14中的java tools簡介

1.1 JDK 14詳細概述

JDK 8 已經在 2014年 3月 18日正式可用,JDK 8作為長期支援(Long-Term-Support)版本,距離現在已經 5年多時間過去了。5年時間裡很多企業也都換上了 JDK 8,2018年09月25日作為下一個LTS的JDK版本:JDK 11也應運而生,Oracle表示會對JDK 11提供大力支援、長期支援。之後陸續釋出了JDK 12 和JDK 13,JDK 14在 2020年 3月17日正式釋出。

1.2 JDK 14總體概覽

Oracle在2020年3月17日宣佈Java 14(Oracle JDK 14)的全面上市。Java 14通過每六個月釋出一次新功能,為企業和開發人員社群提供新的增強功能,繼續了Oracle加快創新的承諾。最新的Java開發工具包(JDK)提供了新功能,其中包括兩項備受期待的新預覽功能–例項匹配的模式匹配(JEP 305)和記錄(JEP 359),以及文字塊的第二個預覽(JEP 368)。此外,最新的Java版本增加了對switch表示式的Java語言支援,公開了用於持續監控JDK Flight Recorder資料的新API,將低延遲Z垃圾收集器的可用性擴充套件到了macOS和Windows,並在孵化器模組中添加了包裝完備的Java應用程式和新的外部記憶體訪問API,以安全,高效地訪問Java堆外部的記憶體。

1.3 JDK 14官方計劃

我們可以在openjdk官網中觀察到JDK 14釋出的詳細官方計劃和具體的新特性詳情,地址如下:

https://openjdk.java.net/projects/jdk/14/

下面看下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一個工具,這裡我先簡單介紹一下,後續再針對複雜的,特別有用的工具做一個專門的說明。

以下排名僅按字母順序,不代表任何個人觀點

一個java的靜態編譯器,為編譯好的java方法生成native程式碼。

jar包大家都很熟悉了,使用jar命令可以用來打包和解壓jar檔案。

jarsigner

jar包打完了,使用jarsigner來對jar包做簽名和認證。

使用java可以執行java程式。

javac用來編譯java檔案,將文字檔案編譯成二進位制的class檔案。

javadoc

javadoc可以將程式碼中寫的註釋文件生成HTML頁面供大家參考。如果你有看過JDK的原始碼的話,可以看到原始碼裡面寫了很多註釋。大家可以學習一下。因為註釋很重要。

java自帶的反編譯工具,可以將二進位制的class檔案反編譯成為人類可讀的程式碼。

這個反編譯工具可能不夠IDE自帶的反編譯工具強大。

這裡的d代表的是diagnostic,通過這個命令可以對正在執行的JVM進行除錯。

這是一個非常有用的除錯工具,我們在後面的文章中會詳細講解。

jconsole

jconsole是一個GUI客戶端,可以對現有的java程式進行管理。

他們的連線協議是JMX。不知道為什麼國內的公司好像很少用到JMX。um…這個問題等我有時間了研究一下。

Java Debugger (JDB)是一個命令列的debug工具,提供了一系列的debug程式的功能。

jdeprscan

jdeprscan是一個分析工具,用來掃描jar或者class檔案中的deprecated API。

jdeps是一個java class依賴的分析工具。

jfr是Java Flight Recorder的縮寫,jfr是java應用程式的分析工具。它可以收集JVM在執行期間所產生的一系列事件,並生成檔案和分析。

後面我們會用一篇文章詳細講解JFR。

jhsdb是一個分析工具,可以分析正在執行的java程式中,也可以分析coredump。

jinfo為特定的java程序生成執行時的java配置資訊。

jjs用來執行Nashorn engine。

從JDK9之後,java已經模組化了。jlink可以將模組和他們的依賴組織起來,生成一個自定義的執行時環境。

jmap可以打印出某個java程序的堆資訊。我們會在後面的文章中詳細講解。

jmod用來建立和解析JMOD檔案。

jpackage

jpackage可以用來打包自執行的java程式。

列出機子上面的java程序。

jrunscript

啟動一個命令列shell,這個shell支援互動和批處理模式。

一個可互動的java shell環境。

列印java stack資訊,主要用在debug中。後面我們會詳細講解。

用於監控JVM的統計資訊。

jstatd是一個RMI服務程式,用來遠端監控JVM。

keytool

生成和管理金鑰,證書的工具。

用來生成遠端方法呼叫的stub和skeleton類。

啟動一個守護程序,允許在JVM中註冊和例項化物件。

rmiregistry

建立一個RMI物件的註冊器。

serialver

為一個或多個class生成serialVersionUID。

以上的31個工具就是JDK14提供的。後面我們會挑其中幾個對我們的程式除錯和定位問題非常有用的幾個工具來講解。

到此這篇關於解析JDK14中的java tools簡介的文章就介紹到這了,更多相關JDK14 java tools簡介內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!