JDK工具一覽表

Java 坑如此大,需要慢慢填。

本文是列出JDK自帶的一些工具,介於篇幅,簡單列出工具列表及工具的作用。至少先做到知道有哪些工具,然後才能在實際中用到。

本文參考了官方介紹和本機man命令的介紹。

1. 標準工具

這些工具都是JDK提供的,通常都是長期支持的工具,JDK承諾這些工具比較好用。不同系統、不同版本之間可能會有差異,但是不會突然就有一個工具消失。

1.1 基礎 (appletviewer, extcheck, jar, java, javac, javadoc, javah, javap, jdb, jdeps)

工具簡述
appletviewer在沒有web瀏覽器的情況下運行和調試applet
extcheck檢查Jar衝突的工具
jar創建和管理Jar文件
javaJava運行工具,用於運行.class字節碼文件或.jar文件
javac用於Java編程語言的編譯器
javadocAPI文檔生成器
javahC頭文件和stub函數生成器,用於編寫native方法
javap類文件反彙編器,主要用於根據Java字節碼文件反彙編爲Java源代碼文件
jdbJava調試器(Java Debugger)
jdepsJava類依賴性分析器

1.2 安全 (keytool, jarsigner, policytool)

工具簡述
keytool管理密鑰庫和證書。主要用於獲取或緩存Kerberos協議的票據授權票據。允許用戶查看本地憑據緩存和密鑰表中的條目(用於Kerberos協議)。Kerberos密鑰表管理工具,允許用戶管理存儲於本地密鑰表中的主要名稱和服務密鑰。
jarsigner生成並驗證JAR簽名
policytool管理策略文件的GUI工具,用於管理用戶策略文件(.java.policy)

1.3 國際化/i18n (native2ascii)

工具簡述
native2ascii本地編碼到ASCII編碼的轉換器(Native-to-ASCII Converter),用於“任意受支持的字符編碼”和與之對應的“ASCII編碼和(或)Unicode轉義”之間的相互轉換。

1.4 遠程方法調用/RMI (rmic, rmiregistry, rmid, serialver)

工具簡述
rmicJava RMI 編譯器,爲使用JRMP或IIOP協議的遠程對象生成stub、skeleton、和tie類,也用於生成OMG IDL。
rmiregistry遠程對象註冊表服務,用於在當前主機的指定端口上創建並啓動一個遠程對象註冊表。
rmid啓動激活系統守護進程,允許在虛擬機中註冊或激活對象。
serialver生成並返回指定類的序列化版本ID

1.5 Java IDL 與 RMI-IIOP (tnameserv, idlj, orbd, servertool)

工具簡述
tnameserv提供對命名服務的訪問
idljIDL轉Java編譯器(IDL-to-Java Compiler),生成映射OMG IDL接口的.java文件,並啓用以Java編程語言編寫的使用CORBA功能的應用程序的.java文件。IDL意即接口定義語言(Interface Definition Language)。
orbd對象請求代理守護進程(Object Request Broker Daemon),提供從客戶端查找和調用CORBA環境服務端上的持久化對象的功能。使用ORBD代替瞬態命名服務tnameserv。ORBD包括瞬態命名服務和持久命名服務。ORBD工具集成了服務器管理器,互操作命名服務和引導名稱服務器的功能。當客戶端想進行服務器時定位,註冊和激活功能時,可以與servertool一起使用。
servertool爲應用程序註冊,註銷,啓動和關閉服務器提供易用的接口

1.6 Java 發佈工具 (javapackager, pack200, unpack200)

工具簡述
javapackager打包、簽名Java和JavaFX應用程序
pack200使用Java gzip壓縮器將JAR文件轉換爲壓縮的pack200文件。壓縮的壓縮文件是高度壓縮的JAR,可以直接部署,節省帶寬並減少下載時間。
unpack200將pack200生成的打包文件解壓提取爲JAR文件

1.7 Java Web 啓動工具 (javaws)

工具簡述
javaws啓動Java Web Start並設置各種選項的工具

1.8 故障排查,分析,監控和管理 (jcmd, jconsole, jmc, jvisualvm)

工具簡述
jcmdJVM診斷命令工具,將診斷命令請求發送到正在運行的Java虛擬機。
jconsole用於監控Java虛擬機的使用JMX規範的圖形工具。它可以監控本地和遠程JVM。它還可以監控和管理應用程序。
jmcJava任務控制客戶端(JMC,Java Mission Control),包含用於監控和管理Java應用程序的工具,而不會引入與這些工具相關聯的性能開銷。開發者可以使用jmc命令來創建JMC工具
jvisualvm一種圖形化工具,可在Java虛擬機中運行時提供有關基於Java技術的應用程序(Java應用程序)的詳細信息。 Java VisualVM提供內存和CPU分析,堆轉儲分析,內存泄漏檢測,MBean訪問和垃圾收集。

1.9 WebService工具 (schemagen, wsgen, wsimport, xjc)

工具簡述
schemagen用於XML綁定的Schema生成器,用於生成XML schema文件。
wsgenXML Web Service 2.0的Java API,生成用於JAX-WS Web Service的JAX-WS便攜式產物。
wsimportXML Web Service 2.0的Java API,主要用於根據服務端發佈的wsdl文件生成客戶端
xjc主要用於根據XML schema文件生成對應的Java類。

2. 實驗性工具

所謂的實驗性工具,就是HotSpot JDK提供了,但是可能在之後的某個版本中突然就不可用了。通過man命令查看這些工具的詳細介紹的時候,都會在第一行有This command is experimental and unsupported.這麼一句。HotSpot JDK再三強調要謹慎使用,但是由於這些工具在Java性能調優方面作用太大,所以我們就謹慎的研究然後謹慎的使用吧。

2.1 監控 (jps, jstat, jstatd)

工具簡述
jpsJVM進程狀態工具(JVM Process Status Tool),在目標系統上列出HotSpot Java虛擬機進程的描述信息
jstatJVM統計監控工具(JVM Statistics Monitoring Tool),根據參數指定的方式收集和記錄指定的jvm進程的性能統計信息。
jstatdJVM jstat守護程序,啓動一個RMI服務器應用程序,用於監視測試的HotSpot Java虛擬機的創建和終止,並提供一個界面,允許遠程監控工具附加到在本地系統上運行的Java虛擬機。

2.2 故障排查 (jinfo, jhat, jmap, jsadebugd, jstack)

工具簡述
jinfoJava的配置信息工具(Java Configuration Information),用於打印指定Java進程、核心文件或遠程調試服務器的配置信息。
jhatJava堆分析工具(Java Heap Analysis Tool),用於分析Java堆內存中的對象信息。
jmapJava內存映射工具(Java Memory Map),主要用於打印指定Java進程、核心文件或遠程調試服務器的共享對象內存映射或堆內存細節。
jsadebugd適用於Java的可維護性代理調試守護程序(Java Serviceability Agent Debug Daemon),主要用於附加到指定的Java進程、核心文件,或充當一個調試服務器。
jstackJava的堆棧跟蹤工具,主要用於打印指定Java進程、核心文件或遠程調試服務器的Java線程的堆棧跟蹤信息。

2.3 腳本工具 (jjs, jrunscript)

工具簡述
jjs對Nashorn引擎的調用。Nashorn是基於Java實現一個輕量級高性能的JavaScript運行環境。
jrunscriptJava命令行腳本外殼工具(command line script shell),主要用於解釋執行javascript、groovy、ruby等腳本語言。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章