{
    "mode": "man",
    "parameter": "jps",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/jps/1/json",
    "generated": "2026-06-17T19:33:38Z",
    "synopsis": "jps [ options ] [ hostid ]\noptions\nCommand-line options. See Options.\nhostid The identifier of the host for which the process report should be generated. The\nhostid can include optional components that indicate the communications protocol, port\nnumber, and other implementation specific data. See Host Identifier.",
    "sections": {
        "NAME": {
            "content": "jps - Lists the instrumented Java Virtual Machines (JVMs) on the target system. This command\nis experimental and unsupported.\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "jps [ options ] [ hostid ]\n\n\noptions\nCommand-line options. See Options.\n\nhostid The identifier of the host for which the process report should be generated. The\nhostid can include optional components that indicate the communications protocol, port\nnumber, and other implementation specific data. See Host Identifier.\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "The jps command lists the instrumented Java HotSpot VMs on the target system. The command is\nlimited to reporting information on JVMs for which it has the access permissions.\n\nIf the jps command is run without specifying a hostid, then it searches for instrumented JVMs\non the local host. If started with a hostid, then it searches for JVMs on the indicated host,\nusing the specified protocol and port. A jstatd process is assumed to be running on the\ntarget host.\n\nThe jps command reports the local JVM identifier, or lvmid, for each instrumented JVM found\non the target system. The lvmid is typically, but not necessarily, the operating system's\nprocess identifier for the JVM process. With no options, jps lists each Java application's\nlvmid followed by the short form of the application's class name or jar file name. The short\nform of the class name or JAR file name omits the class's package information or the JAR\nfiles path information.\n\nThe jps command uses the Java launcher to find the class name and arguments passed to the\nmain method. If the target JVM is started with a custom launcher, then the class or JAR file\nname and the arguments to the main method are not available. In this case, the jps command\noutputs the string Unknown for the class name or JAR file name and for the arguments to the\nmain method.\n\nThe list of JVMs produced by the jps command can be limited by the permissions granted to the\nprincipal running the command. The command only lists the JVMs for which the principle has\naccess rights as determined by operating system-specific access control mechanisms.\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "The jps command supports a number of options that modify the output of the command. These\noptions are subject to change or removal in the future.\n",
            "subsections": [
                {
                    "name": "-q",
                    "content": "Suppresses the output of the class name, JAR file name, and arguments passed to the\nmain method, producing only a list of local JVM identifiers.\n",
                    "flag": "-q"
                },
                {
                    "name": "-m",
                    "content": "Displays the arguments passed to the main method. The output may be null for embedded\nJVMs.\n",
                    "flag": "-m"
                },
                {
                    "name": "-l",
                    "content": "Displays the full package name for the application's main class or the full path name\nto the application's JAR file.\n",
                    "flag": "-l"
                },
                {
                    "name": "-v",
                    "content": "Displays the arguments passed to the JVM.\n",
                    "flag": "-v"
                },
                {
                    "name": "-V",
                    "content": "Suppresses the output of the class name, JAR file name, and arguments passed to the\nmain method, producing only a list of local JVM identifiers.\n\n-Joption\nPasses option to the JVM, where option is one of the options described on the\nreference page for the Java application launcher. For example, -J-Xms48m sets the\nstartup memory to 48 MB. See java(1).\n",
                    "flag": "-V"
                }
            ]
        },
        "HOST IDENTIFIER": {
            "content": "The host identifier, or hostid is a string that indicates the target system. The syntax of\nthe hostid string corresponds to the syntax of a URI:\n",
            "subsections": [
                {
                    "name": "[protocol:][[//]hostname][:port][/servername]",
                    "content": "protocol\nThe communications protocol. If the protocol is omitted and a hostname is not\nspecified, then the default protocol is a platform-specific, optimized, local\nprotocol. If the protocol is omitted and a host name is specified, then the default\nprotocol is rmi.\n\nhostname\nA hostname or IP address that indicates the target host. If you omit the hostname\nparameter, then the target host is the local host.\n\nport   The default port for communicating with the remote server. If the hostname parameter\nis omitted or the protocol parameter specifies an optimized, local protocol, then the\nport parameter is ignored. Otherwise, treatment of the port parameter is\nimplementation specific. For the default rmi protocol, the port parameter indicates\nthe port number for the rmiregistry on the remote host. If the port parameter is\nomitted, and the protocol parameter indicates rmi, then the default rmiregistry port\n(1099) is used.\n\nservername\nThe treatment of this parameter depends on the implementation. For the optimized,\nlocal protocol, this field is ignored. For the rmi protocol, this parameter is a\nstring that represents the name of the RMI remote object on the remote host. See the\njstatd command -noption for more information.\n"
                }
            ]
        },
        "OUTPUT FORMAT": {
            "content": "The output of the jps command follows the following pattern:\n\nlvmid [ [ classname | JARfilename | \"Unknown\"] [ arg* ] [ jvmarg* ] ]\n\nAll output tokens are separated by white space. An arg value that includes embedded white\nspace introduces ambiguity when attempting to map arguments to their actual positional\nparameters.\n\nNote: It is recommended that you do not write scripts to parse jps output because the format\nmight change in future releases. If you write scripts that parse jps output, then expect to\nmodify them for future releases of this tool.\n",
            "subsections": []
        },
        "EXAMPLES": {
            "content": "This section provides examples of the jps command.\n\nList the instrumented JVMs on the local host:\n",
            "subsections": [
                {
                    "name": "jps",
                    "content": ""
                },
                {
                    "name": "18027 Java2Demo.JAR",
                    "content": ""
                },
                {
                    "name": "18032 jps",
                    "content": ""
                },
                {
                    "name": "18005 jstat",
                    "content": "The following example lists the instrumented JVMs on a remote host. This example assumes that\nthe jstat server and either the its internal RMI registry or a separate external rmiregistry\nprocess are running on the remote host on the default port (port 1099). It also assumes that\nthe local host has appropriate permissions to access the remote host. This example also\nincludes the -l option to output the long form of the class names or JAR file names.\n"
                },
                {
                    "name": "jps -l remote.domain",
                    "content": ""
                },
                {
                    "name": "3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR",
                    "content": ""
                },
                {
                    "name": "2857 sun.tools.jstatd.jstatd",
                    "content": "The following example lists the instrumented JVMs on a remote host with a non-default port\nfor the RMI registry. This example assumes that the jstatd server, with an internal RMI\nregistry bound to port 2002, is running on the remote host. This example also uses the -m\noption to include the arguments passed to the main method of each of the listed Java\napplications.\n"
                },
                {
                    "name": "jps -m remote.domain:2002",
                    "content": ""
                },
                {
                    "name": "3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR",
                    "content": ""
                },
                {
                    "name": "3102 sun.tools.jstatd.jstatd -p 2002",
                    "content": ""
                }
            ]
        },
        "SEE ALSO": {
            "content": "• java(1)\n\n• jstat(1)\n\n• jstatd(1)\n\n• rmiregistry(1)\n\n\n\nJDK 8                                     21 November 2013                                    jps(1)",
            "subsections": []
        }
    },
    "summary": "jps - Lists the instrumented Java Virtual Machines (JVMs) on the target system. This command is experimental and unsupported.",
    "flags": [
        {
            "flag": "-q",
            "long": null,
            "arg": null,
            "description": "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."
        },
        {
            "flag": "-m",
            "long": null,
            "arg": null,
            "description": "Displays the arguments passed to the main method. The output may be null for embedded JVMs."
        },
        {
            "flag": "-l",
            "long": null,
            "arg": null,
            "description": "Displays the full package name for the application's main class or the full path name to the application's JAR file."
        },
        {
            "flag": "-v",
            "long": null,
            "arg": null,
            "description": "Displays the arguments passed to the JVM."
        },
        {
            "flag": "-V",
            "long": null,
            "arg": null,
            "description": "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)."
        }
    ],
    "examples": [
        "This section provides examples of the jps command.",
        "List the instrumented JVMs on the local host:",
        "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.",
        "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."
    ],
    "see_also": [
        {
            "name": "java",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/java/1/json"
        },
        {
            "name": "jstat",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/jstat/1/json"
        },
        {
            "name": "jstatd",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/jstatd/1/json"
        },
        {
            "name": "rmiregistry",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/rmiregistry/1/json"
        }
    ],
    "tldr": {
        "source": "official",
        "description": "Show JVM process status of current user.",
        "examples": [
            {
                "description": "List all JVM processes",
                "command": "jps"
            },
            {
                "description": "List all JVM processes with only PID",
                "command": "jps -q"
            },
            {
                "description": "Display the arguments passed to the processes",
                "command": "jps -m"
            },
            {
                "description": "Display the full package name of all processes",
                "command": "jps -l"
            },
            {
                "description": "Display the arguments passed to the JVM",
                "command": "jps -v"
            }
        ]
    }
}