在基于 IDE 的開發(fā)世界中,程序員很容易脫離 JDK
和使他們的應(yīng)用程序工作的底層技術(shù)。下面列出了開發(fā)人員需要掌握的五個(gè)最有用的 Java
命令行工具,才能成為他們團(tuán)隊(duì)的高效成員。感興趣的同學(xué)可以參加java培訓(xùn),可以學(xué)會(huì)更多的Java 命令行工具使用技巧。
1. Java編譯器:javac
javac 實(shí)用程序是你可以在 JDK 的 bin 目錄中找到的最重要的命令行界面 (CLI) 工具。這是 Java
編譯器,無論你使用 Maven、Gradle、SpringSource IDE 還是 Jenkins CI,在編譯 Java 源代碼時(shí)都會(huì)使用這個(gè) JDK
工具。
但是,如果所有流行的構(gòu)建框架都只是抽象了它的使用,為什么開發(fā)人員需要了解 javac
命令行程序呢?好吧,當(dāng)項(xiàng)目的構(gòu)建和部署管道中出現(xiàn)難以診斷的問題時(shí),故障排除從工具鏈中最基本的組件開始,而這通常是編譯代碼的地方。當(dāng)構(gòu)建橫向運(yùn)行時(shí),開發(fā)人員通常需要將所有花哨的打包和部署工具放在一邊,并恢復(fù)到第一原則。這意味著使用
JDK 的 javac 實(shí)用程序編譯代碼。
2. Java 分析器:javap
你可以將 Java 命令行工具 javap 視為對(duì) javac 實(shí)用程序的補(bǔ)充。 當(dāng) javac 編譯代碼時(shí),javap
實(shí)用程序反轉(zhuǎn)該編譯并提供有關(guān)已編譯類的信息,例如它聲明的變量類型,以及它提供的各種方法和 API。 javap JDK
工具不會(huì)將已編譯的類完全返回為其原始源代碼格式,但它確實(shí)提供了有關(guān)原始源代碼設(shè)計(jì)方式的見解。想要學(xué)習(xí)java更多知識(shí)和技能,可以考慮參加java培訓(xùn),有經(jīng)驗(yàn)豐富的專業(yè)講師指導(dǎo)教學(xué),有緊跟市場需求的實(shí)時(shí)課程,可以讓你快速掌握這門技術(shù),節(jié)約時(shí)間,少走彎路。
javap命令行程序也可以用來查看用于創(chuàng)建類文件的編譯器版本,這對(duì)故障排除很有幫助。 此外,javap
工具可以向你顯示編譯器為類創(chuàng)建的字節(jié)碼,并提供有關(guān)組件如何執(zhí)行其邏輯的見解。
3. Java 統(tǒng)計(jì)聚合器:jstat
你的應(yīng)用程序是否遇到運(yùn)行時(shí)問題?為什么不打開 jstat 實(shí)用程序?
兩個(gè)最常調(diào)整的 Java 虛擬機(jī) (JVM) 參數(shù)是堆大小和 Java 運(yùn)行時(shí)環(huán)境 (JRE) 的垃圾收集算法。這個(gè)統(tǒng)計(jì)監(jiān)控
Java CLI 工具提供了類加載器指標(biāo)、即時(shí)編譯器如何工作的見解,以及最重要的是,關(guān)于垃圾收集發(fā)生頻率的數(shù)據(jù)。有了這些統(tǒng)計(jì)數(shù)據(jù),你就可以就如何配置 JVM
以獲得最佳性能做出明智的決定。
4. Java依賴管理器:jdeps
使用 Java 12,將不允許編譯任何引用內(nèi)部 API 的代碼庫。在不久的將來,即使鏈接到引用內(nèi)部 API
的已編譯組件也會(huì)觸發(fā)構(gòu)建失敗。如果你想知道任何現(xiàn)有代碼是否使用或引用了內(nèi)部 Java API,jdeps Java CLI
應(yīng)用程序會(huì)告訴你。此外,如果它確實(shí)在你的源代碼中識(shí)別出對(duì)內(nèi)部 API 的引用,它通常會(huì)提供有關(guān)更新的、更可取的 API 的建議,你可以使用它來替換壞的
API。在java培訓(xùn)中,也有關(guān)于java工具的學(xué)習(xí),理論知識(shí)+實(shí)踐項(xiàng)目,雙管齊下,學(xué)以致用,讓你深入淺出地學(xué)習(xí)java。
5. Java 歸檔實(shí)用程序:jar
創(chuàng)建壓縮歸檔文件并沒有什么特別神奇的地方,這是 Java jar 實(shí)用程序的主要用途。但是這個(gè) Java
命令行工具還有其他一些有用的特性。除了能夠創(chuàng)建壓縮的 zip 文件外,jar 實(shí)用程序還可用于指定可執(zhí)行或嵌入式 JAR 文件的入口點(diǎn)、配置在 JRE
上運(yùn)行時(shí)使用的選項(xiàng),甚至記錄 JAR 文件的內(nèi)部內(nèi)容。當(dāng)你想將一個(gè)版本的代碼版本與另一個(gè)版本進(jìn)行比較時(shí),Jar 會(huì)很有用。當(dāng)然,除了能夠壓縮文件之外,JDK
工具 jar 還可以用于提取歸檔文件的內(nèi)容。
JDK 的 bin 目錄中還打包了許多其他有趣的 Java 命令行界面工具,研究它們并探索它們的實(shí)用程序符合每個(gè) Java
開發(fā)人員的最大利益。但是這些前面提到的 Java 命令行工具——即 javac、javap、jstat、jdeps 和
jar——是認(rèn)真的軟件開發(fā)人員需要知道的五個(gè)。想學(xué)習(xí)java技術(shù)的同學(xué),不妨報(bào)個(gè)Java培訓(xùn)班,有明確清晰的學(xué)習(xí)路線,可以獲得快速提升。