软件指南针:专注于软件传播与分享

JDK工具jps用法详解

来源:原创 1465次浏览 0条评论
☞ 本文主要介绍软件Java的相关内容:JDK工具jps用法详解

   其下列版本/分支可以参考本文:

  • 全部版本/分支

jps(JVM Process Status Tool),主要用于显示Java进程的状态信息。

用法摘要

jps [ options ] [ hostid ]
options
命令行选项。
hostid
指定为其生成进程报告的主机的主机标识符。hostid可能包括表示通讯协议、端口号以及其他实现特定数据的可选组件。

描述

jps工具用于列出目标系统上安装的HotSpot JVM。此工具仅限于报告JVM在其访问权限内的相关信息。

如果运行jps时没有指定hostid参数,它将查找本地主机上安装的JVM。如果在启动jps的同时指定了一个hostid,则它会使用指定的协议和端口,在hostid所表示的主机上查找JVM。一个jstatd进程被认为正运行于目标主机上。

对于在目标系统上找到的每个JVM而言,jps命令将报告本地虚拟机的标识符,或者lvmidlvmid通常是,但不一定是,Java进程的操作系统进程标识符。如果没有指定选项参数,jsp将列出每个Java应用程序的lvmid,并紧随在简短格式的应用程序类名或jar文件名称之后。简短格式的类名或jar文件名会忽略掉类的包名信息或jar文件的路径信息。

jps命令使用java启动器来查找类名以及传递给main方法的参数。如果使用自定义启动器来启动JVM,类名(或jar文件名称)和传递给main方法的参数将不可用。在这种情况下,jps命令将会针对类名或jar文件名称和传递给main方法的参数输出"Unknown"字符串。

使用jps命令产生的JVM列表可能受限于授予运行该命令的角色权限。该命令只会列出取决于操作系统特定访问控制机制的具有访问权限的JVM。

注意:此工具是不受支持的,并且无法确定在未来版本的JDK中是否可用。目前,该工具无法在Windows 98和Windows ME平台上使用。

选项

jps命令支持许多修改该命令输出的选项。以后,这些选项可能随时会被更改或移除。

-q
抑制类名、jar文件名称以及传递给main方法的参数的输出,仅产生本地虚拟机标识符的列表。
-m
输出传递给main方法的参数。嵌入式JVM的输出可能为null。
-l
输出应用程序main类的完整包名,或者应用程序jar文件的路径全称。
-v
输出传递给JVM的参数。
-V
输出通过标识文件(.hotspotrc文件或-XX:Flags=<filename>参数指定的文件)传递给JVM的参数。
-Joption
传递选项参数给被javac调用的java启动程序。例如,-J-Xms48m设置启动内存为48 MB。使用-J将选项参数传递给执行Java应用程序的底层虚拟机,这是一种常见惯例。

主机标识符

主机标识符,或hostid,是一个表示目标系统的字符串。hostid字符串的语法与URI的语法基本一致:

[protocol:][[//]hostname][:port][/servername]
protocol
通讯协议。如果protocol被省略,并且没有指定主机名称,则默认协议为一个特定于平台的优化的本地协议。如果protocol被省略,并且指定了主机名称,则默认的协议为rmi。
hostname
表示目标主机的主机名或IP地址。如果主机名被省略,那么目标主机就是本地主机。
port
与远程服务器通讯的默认端口。如果主机名被省略,或者协议指定为一个最佳优化的本地协议,那么端口将被忽略掉。否则,端口参数的处理是一个特定的实现。对于默认的rmi协议,port将采用远程主机上rmiregistry端口号。如果端口被省略,并且协议为rmi,那么将使用默认的rmiregistry端口(1099)。
servername
该参数的处理取决于实现。对于经过优化的本地协议,该字段会被忽略。对于rmi协议,该参数是远程主机上表示RMI远程对象名称的一个字符串。请参考jstatd命令的-n选项。

输出格式

jps命令的输出遵循以下模式:

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

所有的输出标记均使用空格隔开。当尝试映射参数到它们的实际位置参数时,包含嵌入的空格的参数将引入歧义。

注意:由于在未来版本中输出格式可能更改,因此不建议编写脚本来解析jps输出。如果你选择编写解析jps输出的脚本,可能需要针对此工具的未来版本修改这些脚本。

示例

本节提供jps命令的示例。

列出本地主机上的JVM:

jps
18027 Java2Demo.JAR
18032 jps
18005 jstat
列出远程主机上的JVM:

本示例假定jstat服务器和它内部的RMI注册表(或远程主机上单独的外部rmiregistry进程)在默认端口上运行(端口为1099)。它也假定本地主机具有适当的访问远程主机的权限。本示例也包含-l选项参数,用于输出详细格式的类名或jar文件名。

jps -l remote.domain3002 /opt/j2sdk1.5.0/demo/jfc/Java2D/Java2Demo.JAR
2857 sun.tools.jstatd.jstatd

列出使用非默认端口的RMI注册表的远程主机上的JVM:

本示例假定远程主机上运行的jstatd服务器使用绑定端口2002的内部RMI注册表。本示例也使用-m选项参数,以包括每个列出的Java应用的main方法的传递参数。

jps -m remote.domain:20023002 /opt/j2sdk1.5.0/demo/jfc/Java2D/Java2Demo.JAR
3102 sun.tools.jstatd.jstatd -p 2002

另请参阅

作者:软件指南针(http://www.softown.cn),转载请保留出处!

用户评论

使用指南 故障排除 0 返回顶部