1 .\" Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights reserved.
   3 .\"
   4 .\" This code is free software; you can redistribute it and/or modify it
   5 .\" under the terms of the GNU General Public License version 2 only, as
   6 .\" published by the Free Software Foundation.
   7 .\"
   8 .\" This code is distributed in the hope that it will be useful, but WITHOUT
   9 .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  10 .\" FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  11 .\" version 2 for more details (a copy is included in the LICENSE file that
  12 .\" accompanied this code).
  13 .\"
  14 .\" You should have received a copy of the GNU General Public License version
  15 .\" 2 along with this work; if not, write to the Free Software Foundation,
  16 .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  17 .\"
  18 .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  19 .\" or visit www.oracle.com if you need additional information or have any
  20 .\" questions.
  21 .\"
  22 .\" Automatically generated by Pandoc 2.3.1
  23 .\"
  24 .TH "JPS" "1" "2018" "JDK 13" "JDK Commands"
  25 .hy
  26 .SH NAME
  27 .PP
  28 jps \- list the instrumented JVMs on the target system
  30 .PP
  31 \f[B]Note:\f[R] This command is experimental\ and unsupported.
  32 .PP
  33 \f[CB]jps\f[R] [\f[CB]\-q\f[R]] [\f[CB]\-mlvV\f[R]] [\f[I]hostid\f[R]]
  34 .PP
  35 \f[CB]jps\f[R] [\f[CB]\-help\f[R]]
  37 .TP
  38 .B \f[CB]\-q\f[R]
  39 Suppresses the output of the class name, JAR file name, and arguments
  40 passed to the \f[CB]main\f[R] method, producing a list of only local JVM
  41 identifiers.
  42 .RS
  43 .RE
  44 .TP
  45 .B \f[CB]\-mlvV\f[R]
  46 You can specify any combination of these options.
  47 .RS
  48 .IP \[bu] 2
  49 \f[CB]\-m\f[R] displays the arguments passed to the \f[CB]main\f[R] method.
  50 The output may be \f[CB]null\f[R] for embedded JVMs.
  51 .IP \[bu] 2
  52 \f[CB]\-l\f[R] displays the full package name for the application\[aq]s
  53 \f[CB]main\f[R] class or the full path name to the application\[aq]s JAR
  54 file.
  55 .IP \[bu] 2
  56 \f[CB]\-v\f[R] displays the arguments passed to the JVM.
  57 .IP \[bu] 2
  58 \f[CB]\-V\f[R] suppresses the output of the class name, JAR file name, and
  59 arguments passed to the \f[CB]main\f[R] method, producing a list of only
  60 local JVM identifiers.
  61 .RE
  62 .TP
  63 .B \f[I]hostid\f[R]
  64 The identifier of the host for which the process report should be
  65 generated.
  66 The \f[CB]hostid\f[R] can include optional components that indicate the
  67 communications protocol, port number, and other implementation specific
  68 data.
  69 See \f[B]Host Identifier\f[R].
  70 .RS
  71 .RE
  72 .TP
  73 .B \f[CB]\-help\f[R]
  74 Displays the help message for the \f[CB]jps\f[R] command.
  75 .RS
  76 .RE
  78 .PP
  79 The \f[CB]jps\f[R] command lists the instrumented Java HotSpot VMs on the
  80 target system.
  81 The command is limited to reporting information on JVMs for which it has
  82 the access permissions.
  83 .PP
  84 \f[B]Note:\f[R]
  85 .PP
  86 JDK 10 added support for using the Attach API when attaching to Java
  87 processes running in a separate docker process.
  88 However, the \f[CB]jps\f[R] tool cannot see JVM processes running in a
  89 separate docker instance.
  90 If you are trying to connect a Linux host with a Virtual Machine within
  91 a docker container, you must use tools such as \f[CB]ps\f[R] to look up
  92 the PID of the JVM and then specify the PID on the command line of the
  93 tools that accept the PID.
  94 .PP
  95 If the \f[CB]jps\f[R] command is run without specifying a \f[CB]hostid\f[R],
  96 then it searches for instrumented JVMs on the local host.
  97 If started with a \f[CB]hostid\f[R], then it searches for JVMs on the
  98 indicated host, using the specified protocol and port.
  99 A \f[CB]jstatd\f[R] process is assumed to be running on the target host.
 100 .PP
 101 The \f[CB]jps\f[R] command reports the local JVM identifier, or
 102 \f[CB]lvmid\f[R], for each instrumented JVM found on the target system.
 103 The \f[CB]lvmid\f[R] is typically, but not necessarily, the operating
 104 system\[aq]s process identifier for the JVM process.
 105 With no options, the \f[CB]jps\f[R] command lists each Java
 106 application\[aq]s \f[CB]lvmid\f[R] followed by the short form of the
 107 application\[aq]s class name or jar file name.
 108 The short form of the class name or JAR file name omits the class\[aq]s
 109 package information or the JAR files path information.
 110 .PP
 111 The \f[CB]jps\f[R] command uses the Java launcher to find the class name
 112 and arguments passed to the main method.
 113 If the target JVM is started with a custom launcher, then the class or
 114 JAR file name, and the arguments to the \f[CB]main\f[R] method aren\[aq]t
 115 available.
 116 In this case, the \f[CB]jps\f[R] command outputs the string
 117 \f[CB]Unknown\f[R] for the class name, or JAR file name, and for the
 118 arguments to the \f[CB]main\f[R] method.
 119 .PP
 120 The list of JVMs produced by the \f[CB]jps\f[R] command can be limited by
 121 the permissions granted to the principal running the command.
 122 The command lists only the JVMs for which the principal has access
 123 rights as determined by operating system\-specific access control
 124 mechanisms.
 126 .PP
 127 The host identifier, or \f[CB]hostid\f[R], is a string that indicates the
 128 target system.
 129 The syntax of the \f[CB]hostid\f[R] string corresponds to the syntax of a
 130 URI:
 131 .RS
 132 .PP
 133 [\f[I]protocol\f[R]\f[CB]:\f[R]][[\f[CB]//\f[R]]\f[I]hostname\f[R]][\f[CB]:\f[R]\f[I]port\f[R]][\f[CB]/\f[R]\f[I]servername\f[R]]
 134 .RE
 135 .TP
 136 .B \f[I]protocol\f[R]
 137 The communications protocol.
 138 If the \f[I]protocol\f[R] is omitted and a \f[I]hostname\f[R] isn\[aq]t
 139 specified, then the default protocol is a platform\-specific, optimized,
 140 local protocol.
 141 If the protocol is omitted and a host name is specified, then the
 142 default protocol is \f[CB]rmi\f[R].
 143 .RS
 144 .RE
 145 .TP
 146 .B \f[I]hostname\f[R]
 147 A host name or IP address that indicates the target host.
 148 If you omit the \f[I]hostname\f[R] parameter, then the target host is the
 149 local host.
 150 .RS
 151 .RE
 152 .TP
 153 .B \f[I]port\f[R]
 154 The default port for communicating with the remote server.
 155 If the \f[I]hostname\f[R] parameter is omitted or the \f[I]protocol\f[R]
 156 parameter specifies an optimized, local protocol, then the \f[I]port\f[R]
 157 parameter is ignored.
 158 Otherwise, treatment of the \f[I]port\f[R] parameter is
 159 implementation\-specific.
 160 For the default \f[CB]rmi\f[R] protocol, the \f[I]port\f[R] parameter
 161 indicates the port number for the \f[CB]rmiregistry\f[R] on the remote
 162 host.
 163 If the \f[I]port\f[R] parameter is omitted, and the \f[I]protocol\f[R]
 164 parameter indicates \f[CB]rmi\f[R], then the default \f[CB]rmiregistry\f[R]
 165 port (\f[CB]1099\f[R]) is used.
 166 .RS
 167 .RE
 168 .TP
 169 .B \f[I]servername\f[R]
 170 The treatment of this parameter depends on the implementation.
 171 For the optimized, local protocol, this field is ignored.
 172 For the \f[CB]rmi\f[R] protocol, this parameter is a string that
 173 represents the name of the RMI remote object on the remote host.
 174 See the \f[B]jstatd\f[R] command \f[CB]\-n\f[R] option.
 175 .RS
 176 .RE
 178 .PP
 179 The output of the \f[CB]jps\f[R] command has the following pattern:
 180 .RS
 181 .PP
 182 \f[I]lvmid\f[R] [ [ \f[I]classname\f[R] | \f[I]JARfilename\f[R] |
 183 \f[CB]"Unknown"\f[R]] [ \f[I]arg\f[R]* ] [ \f[I]jvmarg\f[R]* ] ]
 184 .RE
 185 .PP
 186 All output tokens are separated by white space.
 187 An \f[CB]arg\f[R] value that includes embedded white space introduces
 188 ambiguity when attempting to map arguments to their actual positional
 189 parameters.
 190 .PP
 191 \f[B]Note:\f[R]
 192 .PP
 193 It\[aq]s recommended that you don\[aq]t write scripts to parse
 194 \f[CB]jps\f[R] output because the format might change in future releases.
 195 If you write scripts that parse \f[CB]jps\f[R] output, then expect to
 196 modify them for future releases of this tool.
 198 .PP
 199 This section provides examples of the \f[CB]jps\f[R] command.
 200 .PP
 201 List the instrumented JVMs on the local host:
 202 .IP
 203 .nf
 204 \f[CB]
 205 jps
 206 18027\ Java2Demo.JAR
 207 18032\ jps
 208 18005\ jstat
 209 \f[R]
 210 .fi
 211 .PP
 212 The following example lists the instrumented JVMs on a remote host.
 213 This example assumes that the \f[CB]jstat\f[R] server and either the its
 214 internal RMI registry or a separate external \f[CB]rmiregistry\f[R]
 215 process are running on the remote host on the default port (port
 216 \f[CB]1099\f[R]).
 217 It also assumes that the local host has appropriate permissions to
 218 access the remote host.
 219 This example includes the \f[CB]\-l\f[R] option to output the long form of
 220 the class names or JAR file names.
 221 .IP
 222 .nf
 223 \f[CB]
 224 jps\ \-l\ remote.domain
 225 3002\ /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
 226 2857\ sun.tools.jstatd.jstatd
 227 \f[R]
 228 .fi
 229 .PP
 230 The following example lists the instrumented JVMs on a remote host with
 231 a nondefault port for the RMI registry.
 232 This example assumes that the \f[CB]jstatd\f[R] server, with an internal
 233 RMI registry bound to port \f[CB]2002\f[R], is running on the remote host.
 234 This example also uses the \f[CB]\-m\f[R] option to include the arguments
 235 passed to the \f[CB]main\f[R] method of each of the listed Java
 236 applications.
 237 .IP
 238 .nf
 239 \f[CB]
 240 jps\ \-m\ remote.domain:2002
 241 3002\ /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
 242 3102\ sun.tools.jstatd.jstatd\ \-p\ 2002
 243 \f[R]
 244 .fi