[关闭]
@mritd 2016-03-14T13:24:02.000000Z 字数 1746 阅读 2447

Java 内置命令-jps

Java


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},示例如下:

hexo_jps_dir

命令详解

首先可以查看 jps 命令的帮助,获取相关信息,执行 jps --help 如下:

hexo_jps_help.png

-q 参数

-q 参数只显示pid,不显示class名称,jar文件名和传递给main 方法的参数

  1. [mritd@iZ257uxyg2vZ ~]$ jps -q
  2. 17433
  3. 15645
  4. [mritd@iZ257uxyg2vZ ~]$

-m 参数

-m 输出传递给 main 方法的参数,在嵌入式jvm上可能是null

  1. [mritd@iZ257uxyg2vZ ~]$ jps -m
  2. 17478 Jps -m
  3. 15645 Bootstrap start
  4. [mritd@iZ257uxyg2vZ ~]$

-l 参数

-l 参数输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名

  1. [mritd@iZ257uxyg2vZ ~]$ jps -l
  2. 17498 sun.tools.jps.Jps
  3. 15645 org.apache.catalina.startup.Bootstrap
  4. [mritd@iZ257uxyg2vZ ~]$

-v 参数

-v 参数输出传递给JVM的参数

  1. [mritd@iZ257uxyg2vZ ~]$ jps -v
  2. 15645 Bootstrap -Djava.util.logging.config.file=/home/mritd/usr/local/apache-tomcat-8.0.32/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/home/mritd/usr/local/apache-tomcat-8.0.32/endorsed -Dcatalina.base=/home/mritd/usr/local/apache-tomcat-8.0.32 -Dcatalina.home=/home/mritd/usr/local/apache-tomcat-8.0.32 -Djava.io.tmpdir=/home/mritd/usr/local/apache-tomcat-8.0.32/temp
  3. 17518 Jps -Dapplication.home=/home/mritd/usr/local/jdk1.8.0_73 -Xms8m
  4. [mritd@iZ257uxyg2vZ ~]$

-V 参数

-V 参数输出通过标记的文件传递给JVM的参数( .hotspotrc 文件,或者是通过参数 -XX:Flags=<filename> 指定的文件)。

  1. [mritd@iZ257uxyg2vZ ~]$ jps -V
  2. 17595 Jps
  3. 15645 Bootstrap
  4. [mritd@iZ257uxyg2vZ ~]$

hostid 详解

hostid服务器标识,它指定了目标的服务器,它的语法如下:

  1. [protocol:][[//]hostname][:port][/servername]
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注