jps

Lists the instrumented Java Virtual Machines (JVMs) on the target system. This command is experimental and unsupported.

Synopsis

  1. jps [ options ] [ hostid ]
  • options

Command-line options. See Options.

  • hostid

The identifier of the host for which the process report should be generated. The hostid can include optional components that indicate the communications protocol, port number, and other implementation specific data. See Host Identifier.

Description

The jps command lists the instrumented Java HotSpot VMs on the target system. The command is limited to reporting information on JVMs for which it has the access permissions.

If the jps command is run without specifying a hostid, then it searches for instrumented JVMs on the local host. If started with a hostid, then it searches for JVMs on the indicated host, using the specified protocol and port. A jstatd process is assumed to be running on the target host.

The jps command reports the local JVM identifier, or lvmid, for each instrumented JVM found on the target system. The lvmid is typically, but not necessarily, the operating system’s process identifier for the JVM process. With no options, jps lists each Java application’s lvmid followed by the short form of the application’s class name or jar file name. The short form of the class name or JAR file name omits the class’s package information or the JAR files path information.

The jps command uses the Java launcher to find the class name and arguments passed to the main method. If the target JVM is started with a custom launcher, then the class or JAR file name and the arguments to the main method are not available. In this case, the jps command outputs the string Unknown for the class name or JAR file name and for the arguments to the main method.

The list of JVMs produced by the jps command can be limited by the permissions granted to the principal running the command. The command only lists the JVMs for which the principle has access rights as determined by operating system-specific access control mechanisms.

选项(Options)

jps 命令支持下面的可选参数,以控制输出的内容。在将来的版本中这些参数可能会被修改或删除。

不带参数

示例(以下示例基于 Linux; 在 windows 上的输出可能会更多一些。):

jps

  1. 1103 Bootstrap
  2. 7908 Jps
  • -q

在输出中去除 main 方法所在的类名,JAR文件名,及传入的参数。 只输出本地 JVM标识符列表。

示例:

jps -q

  1. 1103
  2. 5109
  • -m

显示传入 main 方法的参数。某些平台的 JVM 可能会输出 null。

示例:

jps -m

  1. 1103 Bootstrap start
  2. 7960 Jps -m
  • -l

显示执行的 main 方法所在类的完整包名,或者是所在 JAR 文件的完整路径。

示例:

jps -l

  1. 1103 org.apache.catalina.startup.Bootstrap
  2. 8270 sun.tools.jps.Jps

jps -l -m

  1. 1103 org.apache.catalina.startup.Bootstrap start
  2. 8296 sun.tools.jps.Jps -l -m
  • -v(小写的v)

显示传入给 JVM 的参数.

示例:

jps -v

(为显示方便,已手工折行)

  1. 1103 Bootstrap -Djava.util.logging.config.file=
  2. /usr/local/tomcat7/conf/logging.properties
  3. -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
  4. -Djava.endorsed.dirs=/usr/local/tomcat7/endorsed
  5. -Dcatalina.base=/usr/local/tomcat7
  6. -Dcatalina.home=/usr/local/tomcat7
  7. -Djava.io.tmpdir=/usr/local/tomcat7/temp
  8. 8322 Jps -Dapplication.home=
  9. /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
  10. -Xms8m
  • -V(大写的 V )

屏蔽 main 方法所在的类名,JAR文件名,及传入的参数。 只输出本地 JVM标识符列表。(和 -q 一样?)

Suppresses the output of the class name, JAR file name, and arguments passed to the main method, producing only a list of local JVM identifiers.

  • -Joption

Passes option to the JVM, where option is one of the options described on the reference page for the Java application launcher. For example, -J-Xms48m sets the startup memory to 48 MB. See java(1).

Host Identifier

The host identifier, or hostid is a string that indicates the target system. The syntax of the hostid string corresponds to the syntax of a URI:

  1. [protocol:][[//]hostname][:port][/servername]
  • protocol

The communications protocol. If the protocol is omitted and a hostname is not specified, then the default protocol is a platform-specific, optimized, local protocol. If the protocol is omitted and a host name is specified, then the default protocol is rmi.

  • hostname

A hostname or IP address that indicates the target host. If you omit the hostname parameter, then the target host is the local host.

  • port

The default port for communicating with the remote server. If the hostname parameter is omitted or the protocol parameter specifies an optimized, local protocol, then the port parameter is ignored. Otherwise, treatment of the port parameter is implementation specific. For the default rmi protocol, the port parameter indicates the port number for the rmiregistry on the remote host. If the port parameter is omitted, and the protocol parameter indicates rmi, then the default rmiregistry port (1099) is used.

  • servername

The treatment of this parameter depends on the implementation. For the optimized, local protocol, this field is ignored. For the rmi protocol, this parameter is a string that represents the name of the RMI remote object on the remote host. See the jstatd command -n option for more information.

Output Format

The output of the jps command follows the following pattern:

  1. lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]

All output tokens are separated by white space. An arg value that includes embedded white space introduces ambiguity when attempting to map arguments to their actual positional parameters.

Note: It is recommended that you do not write scripts to parse jps output because the format might change in future releases. If you write scripts that parse jps output, then expect to modify them for future releases of this tool.

Examples

This section provides examples of the jps command.

List the instrumented JVMs on the local host:

  1. jps
  2. 18027 Java2Demo.JAR
  3. 18032 jps
  4. 18005 jstat

The following example lists the instrumented JVMs on a remote host. This example assumes that the jstat server and either the its internal RMI registry or a separate external rmiregistry process are running on the remote host on the default port (port 1099). It also assumes that the local host has appropriate permissions to access the remote host. This example also includes the -l option to output the long form of the class names or JAR file names.

  1. jps -l remote.domain
  2. 3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
  3. 2857 sun.tools.jstatd.jstatd

The following example lists the instrumented JVMs on a remote host with a non-default port for the RMI registry. This example assumes that the jstatd server, with an internal RMI registry bound to port 2002, is running on the remote host. This example also uses the -m option to include the arguments passed to the main method of each of the listed Java applications.

  1. jps -m remote.domain:2002
  2. 3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
  3. 3102 sun.tools.jstatd.jstatd -p 2002

See Also

原文链接: https://docs.oracle.com/javase/8/docs/technotes/tools/windows/jps.html