目录

java cli

jps - Java Virtual Machine Process Status Tool

jps

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 应用main方法名 or 应用程序jar文件名
jps
# 输出传递给JVM的参数
jps -v
# 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名
jps -l
# 输出传递给main 方法的参数,在嵌入式jvm上多是null
jps -m
# 只显示pid
jps -q

java -jar 运行程序,请使用绝对路径,jps 才会出现jar文件名

jinfo

1
2
3
4
5
jinfo --help
# print VM flags
jinfo -flags 69205
# print Java system properties
jinfo -sysprops 69205

jstat

jstat(JVM statistics Monitoring)是用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。

1
2
3
jstat [option] LVMID [interval] [count]

jstat -class 11589

参数

  • [option] : 操作参数
  • LVMID : 本地虚拟机进程ID
  • [interval] : 连续输出的时间间隔
  • [count] : 连续输出的次数

option

  • Loaded : 加载class的数量
  • Bytes : class字节大小
  • Unloaded : 未加载class的数量
  • Bytes : 未加载class的字节大小
  • Time : 加载时间

jmap

jmap(JVM Memory Map)命令用于生成heap dump文件,如果不使用这个命令,还阔以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候·自动生成dump文件。 jmap不仅能生成dump文件,还阔以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等。

1
2
3
4
5
6
7
8
# 查看进程的内存映像信息
jmap pid
# 显示Java堆详细信息
jmap -heap pid
# 显示堆中对象的统计信息
jmap -histo:live pid
# 生成堆转储快照dump文件 可用 jhat:java堆分析工具 打开
jmap -dump:format=b,file=heapdump.phrof pid