JDK經常使用命令行工具(基於JDK10)

雖然我是在jdk10環境下, 可是大致上和jdk8是差很少的. 總共有這麼多java

原本想着一口氣把全部命令都邊學邊總結一下的, 結果發現....有些還真的不是很經常使用....或者說我這個水平還接觸不到那麼多.  因而我就把我能使用到的幾個經常使用的總結一下了.  當作是筆記了.python

jshell

jshell啓動

jshell退出

jshell使用

就想python同樣, 能夠每一行代碼都返回一個交互結果. 編寫短小的程序來運行的時候, 就不用新建項目, 而後新建一個類了...能夠直接上核心代碼了.算法

還覺得我今後之後再也不須要計算器了

java的jshell計算大數的時候以下:(果真不出所料...失望..)shell

怎麼解決呢? 確定是由於默認數字都是Integer型. 只好手動調用BigInteger了.jvm

jcmd

jcmd -h  輸出jcmd的幫助信息.

jcmd -l   打印出全部jvm進程信息.

紅色圈出來的數字是pid, 也就是進程id函數

jcmd <pid> PerfCounter.print  性能統計信息

jcmd <pid> help    列出可執行的進程操做

jcmd <pid> VM.version   看JVM版本信息

從上面一小節的截圖中我們挑一個執行一下. 好比 倒數第二行的VM.version性能

這樣就利用了VM.version操做打印出了JDK虛擬機的版本.學習

jcmd <pid> GC.class_histogram  查看系統中類統計信息

(和這個命令是一個效果 jmap -histo <pid>  ).net

jcmd <pid> VM.uptime    查看 JVM 的啓動時長

jcmd <pid> Thread.print   查看線程堆棧信息

(等同於這個命令:   jstack <pid> )線程

jcmd <pid> GC.run   對JVM執行System.gc()

jcmd <pid> VM.system_properties  查看JVM的系統配置信息

jcmd <pid> VM.flags  查看JVM的啓動參數

jhsdb命令

這個命令是jdk9以後纔開始有的

jhsdb hsdb

這命令會打開圖形界面. 看起來很高大上的樣子...這個還有待學習....看知乎上R大介紹過, 學習學習.

jhsdb jmap --heap --pid <pid>

查看heap的信息,GC使用的算法,heap的配置. (原來的jmap -heap 命令沒有了, 被這個命令代替了)

jmap

jmap -dump:live,format=b,file=dump.hprof <pid>  輸出堆信息到文件.

live指的是活着的對象, 若是不指定, 那麼就會輸出全部對象的

jmap -heap <pid>  heap的信息,GC使用的算法,heap的配置

jdk10 裏發現不支持-heap了. 被前面的  `jhsdb jmap --heap --pid <pid>`  這個命令替代了.

jmap -finalizerinfo <pid>   打印等待回收的對象信息

輸出這個說明沒有F-QUEUE隊列中並無等待Fializer線程執行finalizer方法的對象

jmap -histo:live <pid>  打印堆的對象統計

(做用和這個命令相同   jcmd <pid> GC.class_histogram   )

 jmap -clstats <pid>  類加載器統計信息

jps

jps 顯示jvm進程id及name

jps -q 僅顯示進程id

jps -m  顯示主函數傳入的參數

jps -l  顯示全限定名

jps -v  顯示jvm參數

jstack 

jstack <pid>  查看線程堆棧信息

(等同於這個命令 jcmd <pid> Thread.print)

jstat 

jstat這裏講的更詳細:  https://blog.csdn.net/zhaozheng7758/article/details/8623549

相關文章
相關標籤/搜索