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