Java 内置命令-jps
jps 命令
本文参考自 HollisChuang’s Blog
简介
jps 命令用于查看当前 java 进程及其 pid 等相关信息,同 ps -aux | grep java
这种命令不同的是,jps 并不依赖于应用程序名来搜索进程(比如 grep java
); 这使得它可以显示出没有执行体的 java 进程;该命令 1.5+ 可用。
原理
在 Java 程序运行后,其会在 java.io.tmpdir
参数指定的位置生成一个 hsperfdata_{UserName}
的目录,该目录下会生成类似 Linux 程序运行时的二进制 pid 文件,jsp 命令实质上就是列出该目录下的所有文件;其相关信息通过解析该文件获取。在 Linux 系统下,这个目录位于 /tmp/hsperfdata_{UserName}
,示例如下:
命令详解
首先可以查看 jps 命令的帮助,获取相关信息,执行 jps --help
如下:
-q 参数
-q
参数只显示pid,不显示class名称,jar文件名和传递给main 方法的参数
1 |
|
-m 参数
-m
输出传递给 main
方法的参数,在嵌入式jvm上可能是null
1 |
|
-l 参数
-l
参数输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名
1 |
|
-v 参数
-v
参数输出传递给JVM的参数
1 |
|
-V 参数
-V
参数输出通过标记的文件传递给JVM的参数( .hotspotrc
文件,或者是通过参数 -XX:Flags=<filename>
指定的文件)。
1 |
|
hostid 详解
hostid
即 服务器标识,它指定了目标的服务器,它的语法如下:
1 |
|
- protocol: 如果
protocol
及hostname
都没有指定,那表示的是与当前环境相关的本地协议,如果指定了hostname
却没有指定protocol
,那么protocol
的默认就是rmi
。 - hostname: 服务器的IP或者名称,没有指定则表示本机。
- port: 远程
rmi
的端口,如果没有指定则默认为1099
。 - Servername: 注册到
RMI
注册中心中的jstatd
的名称。
Java 内置命令-jps
https://mritd.com/2016/03/14/java-builtin-command-jps/