jcmd命令使用

Posted Brenda

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jcmd命令使用相关的知识,希望对你有一定的参考价值。

概述

在JDK 1.7之后,新增了一个命令行工具jcmd。

它是一个多功能工具,能够用来导出堆,查看java进程,导出线程信息。运行GC等。

使用演示样例

以下这个命令能够列出当前运行的全部虚拟机:

技术分享

參数-l表示列出全部java虚拟机,针对每个虚拟机,能够使用help命令列出该虚拟机支持的全部命令。例如以下图所看到的,以21024这个进程为例:

技术分享

查看虚拟机启动时间VM.uptime

技术分享

打印线程栈信息Thread.print

技术分享

查看系统中类统计信息GC.class_histogram

运行例如以下命令:

[[email protected]~]$ jcmd 21024 GC.class_histogram

得到结果例如以下:
技术分享

导出堆信息GC.heap_dump

使用例如以下命令能够导出当前堆栈信息,这个命令功能和 jmap -dump
功能一样

技术分享

获取系统Properties内容VM.system_properties

技术分享

获取启动參数VM.flags

技术分享

获取全部性能相关数据PerfCounter.print

技术分享

总结

从以上演示样例能够看出,jcmd拥有jmap的大部分功能,而且Oracle官方也建议使用jcmd取代jmap。



以上是关于jcmd命令使用的主要内容,如果未能解决你的问题,请参考以下文章

JVM诊断命令jcmd介绍

java自带命令行工具(jcmd,jstack)

JDK 14 调试神器了解一下?

JDK 14 里的调试神器了解一下?

使用JCMD采集JFR

Java jmap与jcmd命令dump内存heap堆