Java解除安裝工具:幾個JDK自帶命令與視覺化工具
JDK很多小工具名字和Linux的命令比較像,jps就是其中的典型,和Linux的ps很像,功能也像。
功能介紹:列出正在執行的虛擬機器程序,並顯示虛擬機器執行主類(Main Class,main()方法所在的類)名稱以及這些程序的本地虛擬機器唯一ID(LVMID,Local Virtual Machine Idertifier)。
命令格式:jps [options] [hostid]
命令詳解:jps還可以通過RMI協議查詢開啟了RMI服務的執行虛擬機器程序狀態,引數hostid為RMI登錄檔中註冊的主機名。
options常見引數:
-q:只輸出LVMID,省略主類的名稱;
-m:輸出虛擬機器程序啟動傳遞給主類main()方法的引數;
-l:輸出主類全名,如果程序執行的是jar包,輸出jar路徑;
-v:輸出虛擬機器啟動時的JVM引數;
引數執行示例如下圖:
jstat(JVM Statistics Monitoring Tool)
監視虛擬機器各種執行狀態資訊,可以顯示本地或者遠端虛擬機器程序中的欸類載入、記憶體、垃圾收集、即時編譯等執行資料.
命令格式:jstat [option vmid [interval[s|ms] [count]]];
命令解釋:其中如果是本地虛擬機器則vmid和上一個命令的LVMID是同一個,如果是遠端,那麼vimd是:[protocol:][//]lvmid[@hostname[:port]/servername]。
其中interval和count表示間隔時間和間隔次數,省略表示查詢一次。
常見引數:
-class:監視類載入、解除安裝數量、總空間以及類轉正所耗費的時間;
-gc:監視Java堆狀況,包括Eden區、2個Survivor區、老年代、等容量,已用空間,垃圾收集時間;
-gccapacity:與-gc引數基本相同,但輸出主要關注Java堆各個區域使用到的最大、最小空間;
-gcutil:與-gc基本相同,輸出的是Java堆已使用空間佔總空間百分比;
執行示例如下圖:
S0、S1、E表示的是2個survivor和Eden使用比例,O、M表示老年代和元空間使用比例,CCS壓縮使用比例,YGC、YGCT分別表示Young GC的次數和時間,FGC、FGCT同理,GCT則表示總時間。這些引數如果知道英語名字就能很好的記住。
jstack(Stack Trace for Java)
用於生成虛擬機器當前時刻的執行緒快照,執行緒快照就是當前虛擬機器內每條執行緒正在執行的方法堆疊集合。可以用來定位執行緒長時間停頓的原因。
命令格式:jstack [option] vmid;
option引數:
-F:當正常輸出的請求不被響應時,強制輸出執行緒堆疊;
-l:除堆疊外,顯示關於鎖的附加執行緒;
-m:如果呼叫到本地方法棧的話,可以顯示C/C++的堆疊;
執行示例如下圖:
視覺化工具
jconsole
虛擬機器監控工具,可以選擇指定的程序進行觀察,執行如下圖:
選擇進去過後就可以看到監控結果了,如下圖:
jvisualvm
是jdk自帶的視覺化監控工具,功能很強大,同時還可以安裝各種擴充套件外掛,執行如下圖: