Java的jps命令使用詳解


jps命令簡介

jps(Java Virtual Machine Process Status Tool)是JDK提供的一個可以列出正在運行的Java虛擬機的進程信息的命令行工具,它可以顯示Java虛擬機進程的執行主類(Main Class,main()函數所在的類)名稱、本地虛擬機唯一ID(LVMID,Local Virtual Machine Identifier)等信息。另外,jps命令只能顯示它有訪問權限的Java進程的信息。

雖然jps命令的功能比較單一,但它使用的頻率卻很高。對於本地虛擬機來說,本地虛擬機唯一ID和操作系統的進程ID(PID,Process Identifier)是一致的,如果同時啟動多個Java虛擬機進程,無法根據進程名稱確定某個進程,我們就是使用jps命令顯示主類名稱的功能區分出來。

jps命令參數

命令語法:

jps [-q] [-mlvV] [hostid]

jps [-help]

命令參數說明:

  • -q:不顯示主類名稱、JAR文件名和傳遞給主方法的參數,只顯示本地虛擬機唯一ID。
  • -mlvV:我們可以指定這些參數的任意組合。
    • -m:顯示Java虛擬機啟動時傳遞給main()方法的參數。
    • -l:顯示主類的完整包名,如果進程執行的是JAR文件,也會顯示JAR文件的完整路徑。
    • -v:顯示Java虛擬機啟動時傳遞的JVM參數。
    • -V:不顯示主類名稱、JAR文件名和傳遞給主方法的參數,只顯示本地虛擬機唯一ID。
  • hostid:指定的遠程主機,可以是ip地址和域名, 也可以指定具體協議,端口。如果不指定,則顯示本機的Java虛擬機的進程信息。
  • -help:顯示jps命令的幫助信息。

在沒有指定任何參數的情況下,jps命令會顯示每個Java虛擬機進程的本地虛擬機唯一ID,后面跟着主類名稱或JAR文件名的簡短形式。

命令顯示格式:

LVMID [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]

其中所有輸出都以空格分隔,所以當argjvmarg中包含空格的時候,有可以不好分辨,需要注意一下。

jps命令示例

顯示本機的Java虛擬機進程:

# jps
15729 jar
92153 Jps
90267 Jstat

顯示主類的完整包名或JAR文件名:

# jps -l
15729 one-more-1.0.0.RELEASE.jar
112054 sun.tools.jps.Jps
90267 sun.tools.jstat.Jstat

顯示主類的完整包名或JAR文件名,並且顯示JVM參數:

# jps -lv
15729 one-more-1.0.0.RELEASE.jar -Xmx1g -Xms1g -Xmn512m -XX:SurvivorRatio=4 -XX:MetaspaceSize=256m -XX:+UseG1GC
9043 sun.tools.jps.Jps -Denv.class.path=.:/usr/local/java/jdk1.8.0_251/lib:/usr/local/java/jdk1.8.0_251/jre/lib -Dapplication.home=/usr/local/java/jdk1.8.0_251 -Xms8m
90267 sun.tools.jstat.Jstat -Denv.class.path=.:/usr/local/java/jdk1.8.0_251/lib:/usr/local/java/jdk1.8.0_251/jre/lib -Dapplication.home=/usr/local/java/jdk1.8.0_251 -Xms8m

顯示主類的完整包名或JAR文件名,並且顯示傳遞給main()方法的參數:

# jps -lm
15729 one-more-1.0.0.RELEASE.jar
59014 sun.tools.jps.Jps -lm
90267 sun.tools.jstat.Jstat -gc 15729 1000

結尾

雖然jps命令已經推出很久並且使用頻率很高,但它仍然是一個“實驗性質的,並且沒有技術支持的”(Experimental and Unsupported)工具,日后可能會被轉正,也有可能在某個JDK版本中無聲無息地消失。所以,且用且珍惜吧。

最后,謝謝你這么帥,還給我點贊關注

微信公眾號:萬貓學社

微信掃描二維碼

關注后回復「電子書」

獲取12本Java必讀技術書籍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM