名称
jps - 列出目标系统上的受仪器监控的JVM
概要
注意:此命令是实验性的,不受支持。
jps
[-q
] [-mlvV
] [hostid]
jps
[-help
]
选项
-
-q
-
抑制类名、JAR文件名和传递给
main
方法的参数的输出,仅生成本地JVM标识符的列表。 -
-mlvV
-
您可以指定这些选项的任意组合。
-
-m
显示传递给main
方法的参数。对于嵌入式JVM,输出可能为null
。 -
-l
显示应用程序的main
类的完整包名或应用程序的JAR文件的完整路径名。 -
-v
显示传递给JVM的参数。 -
-V
抑制类名、JAR文件名和传递给main
方法的参数的输出,仅生成本地JVM标识符的列表。
-
- hostid
-
应生成进程报告的主机标识符。
hostid
可包括指示通信协议、端口号和其他实现特定数据的可选组件。请参阅主机标识符。 -
-help
-
显示
jps
命令的帮助消息。
描述
jps
命令列出目标系统上的受仪器监控的Java HotSpot VM。该命令仅限于报告具有访问权限的JVM的信息。
如果运行jps
命令而没有指定hostid
,则它会在本地主机上搜索受仪器监控的JVM。如果使用hostid
启动,则它会在指定的主机上搜索JVM,使用指定的协议和端口。假定目标主机上正在运行jstatd
进程。
jps
命令报告每个在目标系统上找到的受仪器监控的JVM的本地JVM标识符,或lvmid
。 lvmid
通常是操作系统的JVM进程的进程标识符,但不一定是这样。没有选项时,jps
命令列出每个Java应用程序的lvmid
,后跟应用程序的类名或JAR文件名的简短形式。类名或JAR文件名的简短形式省略了类的包信息或JAR文件的路径信息。
jps
命令使用Java启动器查找类名和传递给主方法的参数。如果目标JVM是使用自定义启动器启动的,则类名或JAR文件名以及传递给main
方法的参数不可用。在这种情况下,jps
命令会为类名、JAR文件名和传递给main
方法的参数输出字符串Unknown
。
jps
命令生成的JVM列表可能受到运行命令的主体被授予的权限的限制。该命令仅列出主体具有访问权限的JVM,这是由操作系统特定的访问控制机制确定的。
主机标识符
主机标识符,或hostid
,是一个指示目标系统的字符串。 hostid
字符串的语法对应于URI的语法:
[protocol
:
][[//
]hostname][:
port][/
servername]
- protocol
-
通信协议。如果省略protocol并且未指定hostname,则默认协议是特定于平台的优化本地协议。如果省略协议并指定了主机名,则默认协议是
rmi
。 - hostname
- 指示目标主机的主机名或IP地址。如果省略hostname参数,则目标主机是本地主机。
- port
-
与远程服务器通信的默认端口。如果省略hostname参数或protocol参数指定了优化的本地协议,则忽略port参数。否则,port参数的处理是特定于实现的。对于默认的
rmi
协议,port参数指示远程主机上rmiregistry
的端口号。如果省略port参数,并且protocol参数指示rmi
,则使用默认的rmiregistry
端口(1099
)。 - servername
-
此参数的处理取决于实现。对于优化的本地协议,此字段将被忽略。对于
rmi
协议,此参数是表示远程主机上RMI远程对象名称的字符串。请参阅jstatd命令的-n
选项。
jps命令的输出格式
jps
命令的输出具有以下模式:
lvmid [ [ classname | JARfilename |
"Unknown"
] [ arg* ] [ jvmarg* ] ]
所有输出标记都由空格分隔。包含嵌入式空格的arg
值在尝试将参数映射到其实际位置参数时会引入歧义。
注意:
建议不要编写解析jps
输出的脚本,因为格式可能会在将来的版本中更改。如果编写解析jps
输出的脚本,请准备在将来的工具版本中进行修改。
示例
本节提供了jps
命令的示例。
列出本地主机上的受仪器监控的JVM:
jps
18027 Java2Demo.JAR
18032 jps
18005 jstat
以下示例列出远程主机上的受仪器监控的JVM。此示例假定jstat
服务器和内部RMI注册表或独立的外部rmiregistry
进程正在远程主机上的默认端口(端口1099
)上运行。还假定本地主机具有访问远程主机的适当权限。此示例包括-l
选项以输出类名或JAR文件名的长格式。
jps -l remote.domain
3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
2857 sun.tools.jstatd.jstatd
以下示例列出具有非默认端口的RMI注册表的远程主机上的受仪器监控的JVM。此示例假定jstatd
服务器在绑定到端口2002
的内部RMI注册表上运行在远程主机上。此示例还使用-m
选项以包括列出的每个Java应用程序的main
方法传递的参数。
jps -m remote.domain:2002
3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
3102 sun.tools.jstatd.jstatd -p 2002