天天看點

JDK自帶工具之概覽

在我們平常對java程式進行問題排查、性能調優時,如果沒有合适的工具,很多時候會事倍功半,甚至無法繼續進行下去。其實,jdk自身已經提供了很多強大的工具供我們使用。本文就對這些工具做一個概覽性的描述。

筆者的開發環境是:OS X EI Captian 10.11.6

JDK版本:

JAVA_HOME/bin下的工具截圖如下:

appletviewer: 用于運作并浏覽applet小程式。

extcheck: 擴充檢測工具,主要用于檢測指定jar檔案與目前已安裝的Java SDK擴充之間是否存在版本沖突。

idlj: IDL轉Java編譯器(IDL-to-Java Compiler),用于為指定的IDL檔案生成Java綁定。IDL意即接口定義語言(Interface Definition Language)。

jar: jar檔案管理工具,主要用于打包壓縮、解壓jar檔案。

jarsigner: jar密匙簽名工具。

java: Java運作工具,用于運作.class位元組碼檔案或.jar檔案。

javac: Java編譯工具(Java Compiler),用于編譯Java源代碼檔案。

javadoc: Java文檔工具,主要用于根據Java源代碼中的注釋資訊生成HTML格式的API幫助文檔。

javafxpackager: JavaFX包裝器,用于執行與封裝或簽名JavaFX應用有關的任務。JDK 8u20已經遷移此工具到javapackager。

javah: Java頭檔案工具,用于根據Java類生成C/C++頭檔案和源檔案(主要用于JNI開發領域)。

javap: Java反編譯工具,主要用于根據Java位元組碼檔案反彙編為Java源代碼檔案。

javapackager: 執行針對Java應用程式和JavaFX應用程式的打包和簽名的任務。包含了javafxpackager的功能。

jcmd: Java 指令行(Java Command),用于向正在運作的JVM發送診斷指令請求。

jconsole: 圖形化使用者界面的監測工具,主要用于監測并顯示運作于Java平台上的應用程式的性能和資源占用等資訊。

jdeps: 用于分析Java class的依賴關系.

jdb: Java調試工具(Java Debugger),主要用于對Java應用進行斷點調試。

jhat: Java堆分析工具(Java Heap Analysis Tool),用于分析Java堆記憶體中的對象資訊。

jinfo: Java配置資訊工具(Java Configuration Information),用于列印指定Java程序、核心檔案或遠端調試伺服器的配置資訊。

jjs: 對Nashorn引擎的調用。Nashorn是基于Java實作一個輕量級高性能的JavaScript運作環境。

jmap: Java記憶體映射工具(Java Memory Map),主要用于列印指定Java程序、核心檔案或遠端調試伺服器的共享對象記憶體映射或堆記憶體細節。

jmc: Java任務控制工具(Java Mission Control),主要用于HotSpot JVM的生産時間監測、分析、診斷。開發者可以使用jmc指令來建立JMC工具。 https://docs.oracle.com/javacomponents/jmc-5-5/jmc-user-guide/toc.htm

jps: JVM程序狀态工具(JVM Process Status Tool),用于顯示目标系統上的HotSpot JVM的Java程序資訊。

jrunscript: Java指令行腳本外殼工具(command line script shell),主要用于解釋執行javascript、groovy、ruby等腳本語言。

jsadebugd: Java可用性代理調試守護程序(Java Serviceability Agent Debug Daemon),主要用于附加到指定的Java程序、核心檔案,或充當一個調試伺服器。

jstack: Java堆棧跟蹤工具,主要用于列印指定Java程序、核心檔案或遠端調試伺服器的Java線程的堆棧跟蹤資訊。

jstat: JVM統計監測工具(JVM Statistics Monitoring Tool),主要用于監測并顯示JVM的性能統計資訊,包括gc統計資訊。

jstatd: jstatd(VM jstatd Daemon)工具是一個RMI伺服器應用,用于監測HotSpot JVM的建立和終止,并提供一個接口,允許遠端監測工具附加到運作于本地主機的JVM上。

jvisualvm: JVM監測、故障排除、分析工具,主要以圖形化界面的方式提供運作于指定虛拟機的Java應用程式的詳細資訊。

keytool: 密鑰和證書管理工具,主要用于密鑰和證書的建立、修改、删除等。主要用于擷取或緩存Kerberos協定的票據授權票據。允許使用者檢視本地憑據緩存和密鑰表中的條目(用于Kerberos協定)。Kerberos密鑰表管理工具,允許使用者管理存儲于本地密鑰表中的主要名稱和服務密鑰。

native2ascii: 本地編碼到ASCII編碼的轉換器(Native-to-ASCII Converter),用于”任意受支援的字元編碼”和與之對應的”ASCII編碼和(或)Unicode轉義”之間的互相轉換。

orbd: 對象請求代理守護程序(Object Request Broker Daemon),它使用戶端能夠透明地定位和調用位于CORBA環境的伺服器上的持久對象。

pack200: JAR檔案打包壓縮工具,它可以利用Java類特有的結構,對普通JAR檔案進行高效壓縮,以便于能夠更快地進行網絡傳輸。這是微軟提供的對象包裝程式,用于對象安裝包。

policytool: 政策工具,用于管理使用者政策檔案(.java.policy)。

rmic: Java RMI 編譯器,為使用JRMP或IIOP協定的遠端對象生成stub、skeleton、和tie類,也用于生成OMG IDL。

rmid: Java RMI 激活系統守護程序,rmid啟動激活系統守護程序,允許在虛拟機中注冊或激活對象。

rmiregistry: Java 遠端對象系統資料庫,用于在目前主機的指定端口上建立并啟動一個遠端對象系統資料庫。

schemagen: XML schema生成器,用于生成XML schema檔案。

serialver: 序列版本指令,用于生成并傳回serialVersionUID。

servertool: Java IDL 伺服器工具,用于注冊、取消注冊、啟動和終止持久化的伺服器。

tnameserv: Java IDL瞬時命名服務。

unpack200: JAR檔案解壓工具,将一個由pack200打包的檔案解壓提取為JAR檔案。

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類。

原文出處:後端技術雜談

<a href="http://www.rowkey.me/blog/2016/11/03/jdk-tools/" target="_blank">原文連結</a>

轉載請與作者聯系,同時請務必标明文章原始出處和原文連結及本聲明。