The jps Command

名称

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标识符,或lvmidlvmid 通常是操作系统的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