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
-
-help
:顯示jps命令的幫助資訊。
在沒有指定任何引數的情況下,jps命令會顯示每個Java虛擬機器程序的本地虛擬機器唯一ID,後面跟著主類名稱或JAR檔名的簡短形式。
命令顯示格式:
LVMID [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]
其中所有輸出都以空格分隔,所以當arg
或jvmarg
中包含空格的時候,有可以不好分辨,需要注意一下。
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必讀技術書籍