1.總述
使用jps命令可以列出目標(biāo)系統(tǒng)上運(yùn)行的JVM進(jìn)程。如果不指定任何選項(xiàng),該命令將列出本地JVM進(jìn)程ID和主類或可運(yùn)行jar包的短名。
注意:
- 只有運(yùn)行該命令的用戶具有訪問權(quán)限的JVM進(jìn)程才能被該命令列出。
- 對(duì)于運(yùn)行與docker容器中的JVM進(jìn)程,jps命令不能列出與該工具不在同一個(gè)docker實(shí)例中的JVM進(jìn)程。此時(shí),可以使用操作系統(tǒng)的命令如
ps列出JVM進(jìn)程的PID。 - 該命令是實(shí)驗(yàn)性的,在將來(lái)的版本可能不受支持。
2.選項(xiàng)參數(shù)
由于jps命令極其簡(jiǎn)單,選項(xiàng)參數(shù)也很少,常見的使用形式如下:
jps [-q] [-mlvV] [hostid]
jps [-help]
各選項(xiàng)的含義如下:
-q
??輸出結(jié)果中忽略主類名、jar包名和傳給mian方法的參數(shù),只列出JVM進(jìn)程標(biāo)識(shí)ID。
-mlvV
- ?-m 展示傳遞給
main方法的參數(shù),嵌入式JVM輸出null - ?-l 展示主類的全包名或者可運(yùn)行jar包的全路徑名
- ?-v 展示JVM進(jìn)程的選項(xiàng)參數(shù)
- ?-V 同-q選項(xiàng),只列出JVM進(jìn)程標(biāo)識(shí)ID
hostid
??希望展示JVM進(jìn)程信息的主機(jī)標(biāo)識(shí)。hostid包含通信協(xié)議、主機(jī)IP、通信端口等可選信息,是一個(gè)如下格式的URI:
[protocol:][[//]hostname][:port][/servername]
protocol
??通信協(xié)議,如果protocol和hostname都沒有指定,那么默認(rèn)協(xié)議為本地協(xié)議即列出本地主機(jī)上的JVM進(jìn)程。如果protocol沒有指定,但指定了hostname,那么默認(rèn)協(xié)議為rmi。
hostname
??目標(biāo)主機(jī)的IP地址或主句名。如果沒有指定,默認(rèn)為本地主機(jī)。
port
??主機(jī)通信的端口。本地主機(jī)將忽略端口參數(shù),遠(yuǎn)程主機(jī)則實(shí)現(xiàn)各異。對(duì)于rmi協(xié)議,端口表示遠(yuǎn)程主機(jī)rmiregistry服務(wù)的端口,默認(rèn)值為1099。
servername
??根據(jù)實(shí)現(xiàn)的不同,參數(shù)含義不用。本地協(xié)議將忽略該參數(shù),對(duì)于rmi協(xié)議,該參數(shù)表示遠(yuǎn)程主機(jī)rmi服務(wù)名。
-help
顯示該命令的幫助信息
3.示例
jps命令的輸出格式如下:
lvmid [ [classname|JARfilename|"Unknown"] [arg*] [jvmarg*] ]
列出本地JVM進(jìn)程的示例如下:
jps
18032 jps
18005 jstat
列出遠(yuǎn)程主機(jī)JVM進(jìn)程的示例如下(需要具有訪問遠(yuǎn)程主機(jī)的權(quán)限):
jps -l remote.domain
3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
2857 sun.tools.jstatd.jstatd
使用-l選項(xiàng)列出主類全名或jar包全路徑名,沒有指定端口,則訪問默認(rèn)的1099端口。