VM进程状态工具 - 列出目标系统上已检测的HotSpot Java虚拟机进程信息。可直接在装有java运行环境的Windows 或者 Linux机器上使用命令行执行jps命令。一个典型的应用场景,例如你不知道这台机器上运行的java程序所在的位置,或者不了解它启动时的一些参数设置,便可使用jps命令查看。
语法:jps [ options ] [ hostid ]
option可选参数:
-q : 输出JVM进程ID
-m:输出JVM启动时传递给main()函数的参数,嵌入式的JVM可能参数为null
-l:输出main()函数所在类的全名,如果允许的是jar文件,输出jar文件完整路径
-v:输出JVM进程启动时传递的参数
-V:输出JVM进程号和启动类型(jar 或者 主类名称,是默认的选项)
hostid: 主机ID,可以查看其它机器的进程信息,不推荐使用。
-q示例:
仅仅显示JVM进程号,并没什么实际作用,所以它不常用
[root@localhost ~]$ jps -q 17091 30934 30591
-m示例:
[root@localhost ~]$ jps -m 16183 Jps -m 22979 start.jar jetty.state=/data/jettyDEPLOY/jetty.state jetty-logging.xml jetty-started.xml
由输出结果可以看出,jps -m 命令输出了当前机器所运行的所有JVM进程(此处只有一个jps自身的进程和一个jetty进程)。它的输出格式为:进程号 启动类或者包名 启动参数列表。可以看出进程号为22979的进程,是属于start.jar这个包的,同时它设置了jetty.state参数为xml配置文件
-l示例:
[root@localhost ~]$ jps -l 16239 sun.tools.jps.Jps 22979 /data/jettyDEPLOY/start.jar
显示所有的JVM进程,包含进程号和主类或者jar包的完整路径
-v示例:
[root@localhost ~]$ jps -v 16253 Jps -Dapplication.home=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64 -Xms8m 22979 start.jar -Xmx512m -Xms512m -Xmn512m -Xss256k -XX:PermSize=768m -XX:MaxPermSize=768m -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/jettyDEPLOY/dump -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/data/jettyDEPLOY/dump/heap_trace.txt -Djetty.logs=/data/jettyDEPLOY/logs -Djetty.home=/data/jettyDEPLOY -Djetty.base=/data/jettyDEPLOY
显示所有JVM进程的,包含进程号、启动类或者包以及启动时传递给JVM的所有参数
-V示例:
[root@localhost ~]$ jps 22979 start.jar 16280 Jps [root@localhost ~]$ jps -V 16294 Jps 22979 start.jar
它和不加参数一样,就不过多介绍,可以看到输出结果中start.jar的进程号是一致的。