在JDK的bin目錄下包含了不少功能強大的命令行工具,它們的主要功能代碼都是在jdk/lib/tools.jar中實現的。下面一一介紹這些命令行工具。
web
jps是JVM Process Status Tool的簡稱,用於顯示指定系統內全部的HotSpot虛擬機進程。經常使用的命令有:工具
jps -l //用於輸出主類的全名,若是運行的是jar包,則輸出jar路徑;命令行
jps -v //用於輸出虛擬機啓動時的JVM參數。線程
jstat是JVM Statistics Monitoring Tool的簡稱,用於顯示本地或遠程虛擬機進程中的類加載、內存、垃圾回收、JIT編譯等運行時數據。隊列
jinfo是Configuration Info for Java的簡稱,用於顯示虛擬機各項參數。經常使用的命令有:進程
jinfo -flag pid //用於查看未被顯示指定的參數的默認值;內存
jinfo -syspros pid //用於輸出虛擬機進程的System.getProperties()的內容。資源
jmap是Memory Map for Java的簡稱,用於生成堆轉儲快照文件、查詢finalize執行隊列、Java堆和永久代的詳細信息,須要配合具體的選項參數使用。get
jhat是JVM Heap Dump Browser的簡稱,用於分析生成的堆轉儲快照文件,而且會創建web服務,提供查看分析結果。注意,這個命令必定不要在生產機器上執行,由於它的分析過程很消耗機器資源。虛擬機
jstack是Stack Trace for Java的簡稱,用於顯示當前虛擬機內每一條線程正在執行的方法堆棧集合,可用於分析線程長時間卡頓的緣由。