Java 坑如此大,需要慢慢填。
本文是列出JDK自帶的一些工具,介於篇幅,簡單列出工具列表及工具的作用。至少先做到知道有哪些工具,然後才能在實際中用到。
本文參考了官方介紹和本機man
命令的介紹。
1. 標準工具
這些工具都是JDK提供的,通常都是長期支持的工具,JDK承諾這些工具比較好用。不同系統、不同版本之間可能會有差異,但是不會突然就有一個工具消失。
1.1 基礎 (appletviewer, extcheck, jar, java, javac, javadoc, javah, javap, jdb, jdeps)
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)
工具 | 簡述 |
---|
rmic | Java RMI 編譯器,爲使用JRMP或IIOP協議的遠程對象生成stub、skeleton、和tie類,也用於生成OMG IDL。 |
rmiregistry | 遠程對象註冊表服務,用於在當前主機的指定端口上創建並啓動一個遠程對象註冊表。 |
rmid | 啓動激活系統守護進程,允許在虛擬機中註冊或激活對象。 |
serialver | 生成並返回指定類的序列化版本ID |
1.5 Java IDL 與 RMI-IIOP (tnameserv, idlj, orbd, servertool)
工具 | 簡述 |
---|
tnameserv | 提供對命名服務的訪問 |
idlj | IDL轉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)
工具 | 簡述 |
---|
jcmd | JVM診斷命令工具,將診斷命令請求發送到正在運行的Java虛擬機。 |
jconsole | 用於監控Java虛擬機的使用JMX規範的圖形工具。它可以監控本地和遠程JVM。它還可以監控和管理應用程序。 |
jmc | Java任務控制客戶端(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文件。 |
wsgen | XML Web Service 2.0的Java API,生成用於JAX-WS Web Service的JAX-WS便攜式產物。 |
wsimport | XML 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)
工具 | 簡述 |
---|
jps | JVM進程狀態工具(JVM Process Status Tool),在目標系統上列出HotSpot Java虛擬機進程的描述信息 |
jstat | JVM統計監控工具(JVM Statistics Monitoring Tool),根據參數指定的方式收集和記錄指定的jvm進程的性能統計信息。 |
jstatd | JVM jstat守護程序,啓動一個RMI服務器應用程序,用於監視測試的HotSpot Java虛擬機的創建和終止,並提供一個界面,允許遠程監控工具附加到在本地系統上運行的Java虛擬機。 |
2.2 故障排查 (jinfo, jhat, jmap, jsadebugd, jstack)
工具 | 簡述 |
---|
jinfo | Java的配置信息工具(Java Configuration Information),用於打印指定Java進程、核心文件或遠程調試服務器的配置信息。 |
jhat | Java堆分析工具(Java Heap Analysis Tool),用於分析Java堆內存中的對象信息。 |
jmap | Java內存映射工具(Java Memory Map),主要用於打印指定Java進程、核心文件或遠程調試服務器的共享對象內存映射或堆內存細節。 |
jsadebugd | 適用於Java的可維護性代理調試守護程序(Java Serviceability Agent Debug Daemon),主要用於附加到指定的Java進程、核心文件,或充當一個調試服務器。 |
jstack | Java的堆棧跟蹤工具,主要用於打印指定Java進程、核心文件或遠程調試服務器的Java線程的堆棧跟蹤信息。 |
2.3 腳本工具 (jjs, jrunscript)
工具 | 簡述 |
---|
jjs | 對Nashorn引擎的調用。Nashorn是基於Java實現一個輕量級高性能的JavaScript運行環境。 |
jrunscript | Java命令行腳本外殼工具(command line script shell),主要用於解釋執行javascript、groovy、ruby等腳本語言。 |