本文总结JDK自带的JVM相关工具使用技巧。
java
java命令用来启动一个JVM来执行Java应用程序。java命令主页
这估计是每个Java程序员第一次使用java命令的场景。
#启动一个JVM来执行HelloWorld
$ java HelloWorld
#查看java命令帮助信息
$ java
#查看java命令扩展选项,-Xms,-Xmx,-Xss等JVM配置信息在这里
$ java -X
#运行Java应用程序并指定应用类加载器的加载路径
$ java -cp classpath mainclassname
jmap
#打印帮助信息
$ jmap -help | -h
#打印JVM进程堆摘要信息
$ jmap -heap pid
#查看类加载器统计信息,很耗资源,慎用
$ jmap -clstats pid
jstat
#打印帮助信息
$ jstat -help
jinfo
jinfo工具用于打印正在运行的JVM进程系统属性配置信息。类似于:
System.getProperties();
不同的是,它不但能够打印System.getProperties()的值,还可以打印JVM运行时类加载器的详细加载路径和一些属性信息,对分析JVM进程配置信息有帮助。
#打印帮助信息
$ jinfo -h | -help
#打印JVM进程系统属性配置信息
$ jinfo pid
jstack
JVM中的栈内存是和具体线程绑定的,因此jstack会打印JVM中的线程信息。
#打印帮助信息
$ jstack -h | -help
#dump JVM进程全部的线程信息
$ jstack pid
jstack统计线程状态demo
后续会及时根据实践经验更新
网友评论