java jcmd,jcmd命令用法
jcmd程序须运行在与JVM相同机器上,需拥有与JVM相同的权限。
jcmd程序可在已运行的JVM中,动态地与Java飞行记录器(JFR)交互。
如果,应用程序已处于停止响应状态,则可使用jcmd命令进行数据收集工作,如:收集堆栈信息:jcmd Thread.print。
从远程计算机或使用不同的权限调用诊断命令,可使用如下接口:com.sun.management.DiagnosticCommandMBean
有关DiagnosticCommandMBean接口更多信息,参阅API文档。
jcmd语法jcmd [-l|-h|-help]
jcmd pid|main-class PerfCounter.print
jcmd pid|main-class -f filename
jcmd pid|main-class command[ arguments]
故障排除
jcmd程序提供如下故障排除选项:
录制记录(Start a recording)
示例:在指定Java进程(7060)上开始2分钟记录,并保存到当前目录的myrecording.jfr文件中。jcmd 7060 JFR.start name=MyRecording settings=profile delay=20s duration=2m filename=C:\TEMP\myrecording.jfr
检查记录(Check a recording)
JFR.check检查正在运行的记录,如:jcmd 7060 JFR.check
停止记录(Stop a recording)
JFR.stop命令停止正在运行的记录,如:jcmd 7060 JFR.stop
转储记录(Dump a recording)
JFR.dump命令停止正在运行的录制,并将记录存储到record文件,如:jcmd 7060 JFR.dump name=MyRecording filename=C:\TEMP\myrecording.jfr
创建堆转储(Create a heap dump)
创建堆转储首选方法:jcmd GC.heap_dump filename=Myheapdump
创建堆直方图(Create a heap histogram)
创建堆直方图首选方法:jcmd GC.class_histogram filename=Myheaphistogram
参数说明
jcmd不带参数或使用该-l选项运行,打印正在运行的Java进程标识符列表,包含用于启动进程的main-class和命令行参数。
使用-h或-help选项打印帮助消息。
如果,将进程标识符(pid)或主类(main-class)作为第一个参数,jcmd会将诊断命令发送到指定Java进程,或发送到具有指定启动类的Java进程。可以将0作为进程标识符,将诊断命令发给所有Java进程。
使用如下其中一项作为诊断命令:Perfcounter.print
打印指定Java进程中可用的性能计数器,性能计数器列表会因Java进程不同有所不同。jcmd PerfCounter.print
-f 文件名
从指定文件中读取命令,在目标Java进程上执行这些命令,file中每条命令独占一行,以"#"开头的行被忽略,所有命令调用完后,或者读取到含有stop的关键字,会终止对file的处理。
command [ 参数 ]
发送到指定Java进程的命令,通过向该进程发送help命令,获得指定进程可用的诊断命令列表,每个诊断命令都有自己的一组参数,要查看命令的描述、语法和可用参数列表,使用如下命令:jcmd [options]
注:若参数包含空格,则须用单引号或双引号括起来。此外,须用反斜杠(\)转义单引号或双引号,防止操作系统shell处理引号。
互斥选项
-f 文件名
从指定文件中读取命令,仅在将进程标识符或主类作为第一个参数时才能使用此选项。
-h|-help
打印帮助信息。
-l
使用主类和命令行参数打印正在运行的Java进程标识符列表;也可以使用jps命令。
通用命令
不同版本的HotSpot VM可用的诊断命令有所不同,使用jcmd help,查看当前版本支持的可用选项。
以下是自JDK 8以来,该工具中一些最有用的命令。
注:始终通过jcmd help 获取可用选项。
JDK版本信息jcmd VM.version
VM系统参数
显示数百行信息。jcmd VM.system_properties
VM所有标志参数
即使,没有提供标志,也会打印一些默认值,如:初始/最大堆大小。jcmd VM.flags
以秒为单位打印运行时间jcmd VM.uptime
创建类直方图
结果可能相当冗长,将输出重定向到文件。
内部和特定应用程序类都包含在列表中,占用最多内存的类排在最顶端,按降序对类进行排列。jcmd GC.class_histogram
创建堆转储(hprof dump)jcmd GC.heap_dump filename=Myheapdump
与jmap -dump:file=效果相同, 推荐使用jcmd工具。
创建堆直方图jcmd GC.class_histogram filename=Myheaphistogram
与jmap -histo 效果相同,推荐使用jcmd工具。
打印所有线程堆栈跟踪jcmd Thread.print
命令演示jcmd
5485 sun.tools.jcmd.JCmd
2125 MyProgram
> jcmd MyProgram help (or "jcmd 2125 help")
2125:
The following commands are available:
JFR.stop
JFR.start
JFR.dump
JFR.check
VM.native_memory
VM.check_commercial_features
VM.unlock_commercial_features
ManagementAgent.stop
ManagementAgent.start_local
ManagementAgent.start
Thread.print
GC.class_stats
GC.class_histogram
GC.heap_dump
GC.run_finalization
GC.run
VM.uptime
VM.flags
VM.system_properties
VM.command_line
VM.version
help
> jcmd MyProgram help Thread.print
2125:
Thread.print
Print all threads with stacktraces.
Impact: Medium: Depends on the number of threads.
Permission: java.lang.management.ManagementPermission(monitor)
Syntax : Thread.print [options]
Options: (options must be specified using the or = syntax)
-l : [optional] print java.util.concurrent locks (BOOLEAN, false)
> jcmd MyProgram Thread.print
2125:
2014-07-04 15:58:56
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.0-b69 mixed mode):
...
java jcmd,jcmd命令用法相关推荐
- java指令工具_jvm 指令工具 jcmd 命令(Java多功能命令行)
jcmd 命令 在 jdk1.7 之后,新增了一个命令行工具jcmd,它是一个多功能工具,用它可以导出堆,查看java进程,导出线程信息,执行GC等.jcmd能将命令发送给正在运行的JVM,诊断运行中 ...
- Linux下常用java问题排查命令、工具
本文描述的大部分基于linux环境. 对于一个程序,在Linux下我们可以根据程序响应信息查找对应的进程ID: ps -ef | grep java | grep -v grep | |awk '{p ...
- 如何在Java中解析命令行参数?
在Java中解析命令行参数的好方法是什么? #1楼 我不建议使用Apache Common CLI库,因为它是非线程安全的. 它使用带有静态变量和方法的有状态类来进行内部工作(例如OptionBuil ...
- java登录界面命令_Java命令行界面(第26部分):CmdOption
java登录界面命令 由于Tweet,我了解了本系列中第26个基于Java的功能强大的库,该库用于解析命令行参数 . CmdOption在其GitHub主页上被描述为"一个通过注释配置的,用 ...
- java登录界面命令_Java命令行界面(第12部分):CLAJR
java登录界面命令 第十二篇有关在Java中处理命令行参数的文章的特色库是带有Java Reflection的命令行参数 (CLAJR). 该"库"是单个Java源文件( CLA ...
- java登录界面命令_Java命令行界面(第11部分):CmdLn
java登录界面命令 这篇文章介绍了如何使用Ostermiller Java Utilities 1.08.02的CmdLn(Java命令行解析器)来处理基于Java的应用程序中的命令行参数. Ost ...
- java登录界面命令_Java命令行界面(第13部分):JArgs
java登录界面命令 JArgs 1.0的区别在于,这是我的第13篇文章的主题,该文章是关于Java命令行参数解析的. JArgs是一个开放源代码( BSD许可 )库,主要由Steve Purcell ...
- java登录界面命令_Java命令行界面(第15部分):Jargo
java登录界面命令 Jargo在其GitHub主页上定义为"一种减轻程序参数/选项处理的工具". 当已经存在许多其他命令行处理库时,该页面为另一个命令行处理库提供了基本原理 ,该 ...
- java登录界面命令_Java命令行界面(第18部分):JCLAP
java登录界面命令 Giles Winstanley的JCLAP ( Java命令行参数解析器 )是基于Java的命令行处理库的系列文章中介绍的第18个库. 这篇文章的示例基于JCLAP 1.4 , ...
- java登录界面命令_Java命令行界面(第19部分):jClap
java登录界面命令 本系列中第19个帖子的重点是从Java代码解析命令行参数是jClap ( Java命令行参数解析器 ),不应与JCLAP库混淆,该库是我本系列前 一篇文章的重点. 上 一篇 文章 ...
最新文章
- [物理学与PDEs]第1章第7节 媒质中的 Maxwell 方程组 7.2 媒质交界面上的条件
- 什么是整洁的代码?什么是肮脏的代码?
- 奔跑吧,OpenStack现场分享:超融合架构如何抹平物理硬件差异?
- python jupyter安装_python之jupyter的安装
- perl pop和push函数,不使用索引更能利用perl的特性,减少边界值错误发生的几率...
- 软件设计师 - 算法思想
- 变更数据推送java_idea 团队成员修改工程后push推送
- OPPO Find X2系列获蓝牙5.1认证:距离正式亮相又近了一步
- Linux系统学习: 用户和权限管理指令: 请简述 Linux 权限划分的原则
- mysql什么是表的并的关系_MySQL表与表的关系
- 用Python合并文件夹下所有pdf文件(包括多级子目录下的pdf文件)
- 工具-cloc代码行数统计工具
- android学习资料整理-----高级篇
- Java面试知识点概览(持续更新)
- imazing iOS设备管理软件
- Frontend Framework
- 数据分析模型篇—波士顿矩阵
- Visual C++游戏编程基础之透明半透明效果
- 三元组顺序表表示的稀疏矩阵转置(10分)
- Exception in thread main java.lang.RuntimeException: java.net.ConnectException错误问题