本文使用的JDK版本为jdk1.7.0_79。
一、常用用法
1 | jps [-qlmvV] |
二、含义与选项
2.1、含义
列出在本机运行的有权限进行访问的虚拟机进程的状态信息(主要跟“java”命令对应)。
2.2、选项
1、“无选项”
列出所有有权限进行访问的虚拟机进程的进程ID和运行主类/运行JAR包名称。
2、“-q”选项
只列出所有有权限进行访问的虚拟机进程的进程ID。
3、“-l”选项
运行主类/运行JAR包名称以完整路径形式展现。
4、“-m”选项
列出传递给运行主类/运行JAR包“public static void main(String[] args)”方法的参数。
5、“-v”选项
列出运行虚拟机进程时通过命令行形式传递给虚拟机的参数。
6、“-V”选项
列出运行虚拟机进程时通过文件形式(“.hotspotrc”文件或者“-XX:Flags=<filename>”指定的文件)传递给虚拟机的参数。
三、例子
3.1、例子1
有如下一段代码:
1 | public class Example { |
编译后,执行java -verbose:jni -Dhello=world -Xnoclassgc -Xloggc:jvm.log -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xms10M -Xmx20M -XX:SurvivorRatio=8 -XX:PermSize=20M -XX:MaxPermSize=100M Example 10 20
命令,在该虚拟机进程还在运行时,执行jps -lmvV
命令,得到如下所示结果:
1 | 11441 Example 10 20 -verbose:jni -Dhello=world -Xnoclassgc -Xloggc:jvm.log -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xms10M -Xmx20M -XX:SurvivorRatio=8 -XX:PermSize=20M -XX:MaxPermSize=100M |
3.2、例子2
需要注意的是,在加上“-v/-V”选项的情形下,有些虚拟机参数还是不会显示,比如“-classpath”,“-showversion”。
使用上一小节的代码,编译后,执行java -showversion -verbose:jni -Dhello=world -classpath ".:$JAVA_HOME/lib/tools.jar" -Xnoclassgc -Xloggc:jvm.log -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xms10M -Xmx20M -XX:SurvivorRatio=8 -XX:PermSize=20M -XX:MaxPermSize=100M Example 10 20
命令,在该虚拟机进程还在运行时,执行jps -lmvV
命令,得到如下所示结果:
1 | 11541 Example 10 20 -verbose:jni -Dhello=world -Xnoclassgc -Xloggc:jvm.log -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xms10M -Xmx20M -XX:SurvivorRatio=8 -XX:PermSize=20M -XX:MaxPermSize=100M |
参考文献: [1]http://docs.oracle.com/javase/7/docs/technotes/tools/share/jps.html [2]man jps