你了解JDK常用的7种命令行工具吗?
1 jps
1.1 介绍
jps是JDK提供的一个可以列出正在运行的Java虚拟机的进程信息的命令行工具,用来显示当前系统的java进程情况及进程id。
1.2 命令格式
jps [options] [hostid]
1.3 执行样例
2 jstat
2.1 介绍
它是虚拟机统计信息监视工具,查看gc实时执行情况。
2.2 命令格式
jstat [Options] vmid [interval] [count]
2.3 执行样例
3 jinfo
3.1 介绍
jinfo是用来实时地查看和调整虚拟机各项参数。
3.2 命令格式
jinfo [option] pid
3.3 执行样例
其中结果-UseSerialGC中的-号代表没有使用Serial垃圾收集器。
4 jmap
4.1 介绍
jmap用于生产堆转储快照。
4.2 命令格式
jmap [option] vmid
4.3 执行样例
5 jhat
5.1 介绍
jhat命令与jmap命令搭配使用,来分析jmap生成的堆转储快照。
5.2 执行样例
访问本地的7000端口可以看到页面如下内容
6 jstack
6.1 介绍
jstack是JDK提供的一个可以生成Java虚拟机当前时刻的线程快照信息的命令行工具。线程快照一般被称为threaddump或者javacore文件,是当前Java虚拟机中每个线程正在执行的Java线程、虚拟机内部线程和可选的本地方法堆栈帧的集合。对于每个方法栈帧,将会显示完整的类名、方法名、字节码索引(bytecode index,BCI)和行号。生成的线程快照可以用于定位线程出现长时间停顿的原因,比如:线程间死锁、死循环、请求外部资源被长时间挂起等等。
6.2 命令格式
jstack [options] pid
6.3 执行样例
7 jconsole
7.1 介绍
jconsole是一种基于JMX的可视化监视、管理工具,是jdk自带的一套java虚拟机执行状况监视器,它能够用来监控虚拟机的内存,线程,cpu使用情况以及相关的java进程相关的MBean。
7.2 执行样例
总结
上面总共讲述了7个jdk自带的命令,有jps、jstat、jinfo、jmap、jhat、jstack和jconsole,这7个命令可以帮助我们解决大部分问题,如果还有解决不掉的,可以再找下我之前发的Arthas文章,更强大。
【温馨提示】
点赞+收藏文章,关注我并私信回复【面试题解析】,即可100%免费领取楼主的所有面试题资料!