当前教程
Jps - 列出您的已检测 JVM

Jps - 列出您的已检测 JVM

 

介绍 Jps

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 启动器查找传递给 main 方法的类名和参数。如果目标 JVM 使用自定义启动器启动,则类或 JAR 文件名以及传递给 main 方法的参数不可用。在这种情况下,jps 命令会为类名或 JAR 文件名以及传递给 main 方法的参数输出字符串 Unknown

jps 命令生成的 JVM 列表可能会受到授予运行该命令的主体的权限的限制。该命令仅列出主体具有访问权限的 JVM,这些权限由特定于操作系统的访问控制机制确定。

 

主机标识符

主机标识符或 hostid 是一个字符串,指示目标系统。hostid 字符串的语法对应于 URI 的语法

[protocol:][[//]hostname][:port][/servername]

协议

通信协议。如果省略了 协议 并且未指定 主机名,则默认协议是特定于平台的优化本地协议。如果省略了协议并且指定了主机名,则默认协议是 rmi

主机名

指示目标主机的主机名或 IP 地址。如果您省略了 主机名 参数,则目标主机是本地主机。

端口

与远程服务器通信的默认端口。如果省略了 主机名 参数或 协议 参数指定了优化的本地协议,则忽略 端口 参数。否则,端口 参数的处理方式特定于实现。对于默认的 rmi 协议,端口 参数指示远程主机上 rmiregistry 的端口号。如果省略了 端口 参数,并且 协议 参数指示 rmi,则使用默认的 rmiregistry 端口 (1099)。

服务器名

此参数的处理方式取决于实现。对于优化的本地协议,此字段被忽略。对于 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

以下示例列出远程主机上的已检测 JVM,该主机具有用于 RMI 注册表的非默认端口。此示例假设 jstatd 服务器(其内部 RMI 注册表绑定到端口 2002)正在远程主机上运行。此示例还使用 -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

上次更新: 2021 年 9 月 14 日


当前教程
Jps - 列出您的已检测 JVM