程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> JVM-JDK命令行工具,jvm-jdk命令行

JVM-JDK命令行工具,jvm-jdk命令行

編輯:JAVA綜合教程

JVM-JDK命令行工具,jvm-jdk命令行


 JDK命令行工具

  當我們進入JDK的安裝目錄裡面的/bin目錄,會發現有很多小工具,有我們熟悉的也經常用的java,javac,也有很多我們不怎麼用到很陌生的工具.下面看看哪些平時不怎麼用到的工具吧.

   

 

 jps> JVM Procrss Stauts Tool,顯示指定系統內所有的HotSpot虛擬機進程.

  可以列出正在運行的虛擬機進程,並顯示虛擬機執行主類(Main Class,main()函數所在的類)名稱以及這些進程的本地虛擬機唯一ID(Local Virtual Machine Identifier,LVMID).
  對於本地虛擬機進程來說,LVMID與操作系統進程的ID(Process Identifier,PID) 是一致的.
  jps命令格式:
  jps [ options ] [ hostid ]

  例如:(由於我沒有運行什麼程序,所只有sun.tools.jps.Jps這一個了)

 

  一些常用參數:
  I> -q:只輸出LVMID,省略主類的名稱
  II> -m:輸出虛擬機進程啟動時傳遞給主類main()函數的參數
  III> -l:輸出主類的全名,如果進程執行的是Jar包,輸出Jar路徑
  IV> -v:輸出虛擬機進程啟動時JVM參數

  jstat> JVM Statistics Monitoring Tool,用於收集HotSpot虛擬機各方面的運行數據.它可以顯示本地或者遠程虛擬機進程中的類裝載,內存,垃圾收集,JIT編譯等運行數據,在沒有GUI圖形界面,只提供類純文本控制台環境的服務器上,它將是運行期定位虛擬機性能問題的首選工具.
  jstat命令格式為:
  jstat [ option vmid [ interval [ s | ms ] [ count ] ] ]
  說明:I> 如果是本地虛擬機進程,VMID與LVMID是一致的.
       II> interval 和 count 代表查詢間隔和次數,省略說明只查詢一次.
      例如:jstat -gc 4158 300 10 表示每300毫秒查詢一次進程4158垃圾收集狀況,一共查詢10次.

      III> optin代表這用戶希望查詢的虛擬機信息,主要分為3類:類裝載,垃圾收集,運行編譯狀況.

 

  jinfo> Configuration Info for Java,顯示虛擬機配置信息
  jinfo命令格式:
  jinfo [ optin ] pid
  參數:
  I> -flag可以查詢未被顯示指定的參數的系統默認值.
  例如:

 

  jmap> Memory Map for Java,生成虛擬機的內存轉儲快照(heapdump文件).還可以查詢finalize執行隊列,Java堆和永久代的詳細信息,如空間利用率,當前用的是哪種收集器等.
  jmap命令格式:
  jmap [ optin ] vimd
  參數:
  I> -dump:生成Java堆轉儲快照.格式為:-dump:[live,]format=b,file=<filename>,其中live子參數說明是否只dump出存活的對象.
  II> -finalizerinfo:顯示在F-Queue中等待Finalizer線程執行finalize()方法的對象.只在Linux/Solaris平台下有效.
  III> -heap:顯示Java堆詳細信息,如使用哪種回收器,參數值,分代狀況等.只在Linux/Solaris平台下有效.
  IV> -histo:顯示堆中對象統計信息,包括類,實例數量,合計容量.
  V> -permstat:以ClassLoader為統計口徑顯示永久代內存狀況.只在Linux/Solaris平台下有效.
  VI> -F:當虛擬機進程對-dump選項沒有響應時,可使用這個選項強制生成dump快照.只在Linux/Solaris平台下有效.

 jhat> JVM Heap Dump Browser,用於分析heapdump文件,它會建立一個HTTP/HTML服務器,讓用戶可以在浏覽器上查看分析結果.

  jstack> Stack Trace for Java,顯示虛擬機的線程快照.
  線程快照就是當前虛擬機內每一條線程正在執行的方法堆棧的集合,生成快照的主要目的是定位線程出現長時間停頓的原因.
  jstack [ option ] vmid
  參數:
  I> -F:當正常輸出的請求不被響應時,強制輸出線程堆棧
  II> -l:除了堆棧外,顯示關於鎖的附加信息
  III> -m:如果調用到本地方法的話,可以顯示C/C++的堆棧
  例如(這裡只是部分結果截圖):

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved