java jps_java11教程–jps命令

2022-11-05 14:55:48 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

您可以使用该jps命令列出目标系统上已检测的JVM。

概要

注意: 此命令是实验性的,不受支持。

jps [-q] [-mlvV][hostid]**

jps [-help]

-q

抑制类名,JAR文件名和传递给该main方法的参数的输出,从而仅生成本地JVM标识符的列表。

-mlvV

-m显示传递给main方法的参数。输出可能是null针对嵌入式JVM的。

-l显示应用程序main类的完整软件包名称或应用程序JAR文件的完整路径名称。

-v 显示传递给JVM的参数。

-V禁止输出类名,JAR文件名和传递给该main方法的参数的输出,从而仅生成本地JVM标识符的列表。

hostid

应为其生成过程报告的主机的标识符。的hostid可以包括指示所述通信协议,端口号,和其它实施方式特定的数据的可选组件。请参阅主机标识符。

-help

显示jps命令的帮助消息。

描述

该jps命令列出了目标系统上已检测到的Java HotSpot VM。该命令仅限于报告有关其具有访问权限的JVM的信息。

注意: 当附加到在单独的docker进程中运行的Java进程时,JDK 10添加了对使用Attach API的支持。但是,该jps工具无法看到在单独的docker实例中运行的JVM进程。如果尝试将Linux主机与docker容器中的虚拟机连接,则必须使用诸如ps 查找JVM的PID的工具,然后在接受该PID的工具的命令行上指定PID。

如果jps运行该命令时未指定hostid,则它将在本地主机上搜索检测到的JVM。如果以开头hostid,则它将使用指定的协议和端口在指示的主机上搜索JVM。一个jstatd假设的过程要在目标主机上运行。

该jps命令报告lvmid在目标系统上找到的每个检测到的JVM 的本地JVM标识符,或。的lvmid是典型地但不是必须地,操作系统的对于JVM进程进程标识符。不带任何选项的jps命令将列出每个Java应用程序,lvmid后跟该应用程序的类名或JAR文件名的缩写。类名或JAR文件名的缩写形式省略了类的包信息或JAR文件路径信息。

该jps命令使用Java启动器来查找传递给main方法的类名和参数。如果目标JVM是使用自定义启动器启动的,则该类或JAR文件名以及该main方法的参数将不可用。在这种情况下,jps命令输出Unknown用于类名或JAR文件名以及main方法参数的字符串。

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

主机识别码

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

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

protocol

通信协议。如果protocol省略hostname且未指定a,则默认协议为特定于平台的优化本地协议。如果省略协议,并且指定了主机名,则默认协议为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进程在默认端口(port 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服务器(内部RMI注册表绑定到port 2002)在远程主机上运行。本示例还使用该-m选项来包含传递给main每个列出的Java应用程序的方法的参数。

jps -m remote.domain:2002

3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR

3102 sun.tools.jstatd.jstatd -p 2002

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/191513.html原文链接:https://javaforall.cn

0 人点赞