前面介绍了虚拟机内存分配与回收技术等各方面的知识。理论总是为实现指路的工具,所以能把这些知识运用到实际工作中才是我们的最终目的。
JDK命令行工具
我们知道,JDK的bin目录下有java.exe和javac.exe这两个命令行工具,但并非所有程序猿都了解bin目录中其他命令行工具的作用。
在本文,我们将介绍这些工具的其中一部分,主要包括用于监视虚拟机和故障处理的工具。
说起JDK工具,注意到这些程序的体积都很小,是因为它们大多数是jdk/lib/tools.jar类库的一层薄包装而已,它们主要的功能代码是在tools类库中实现的。
- jps:虚拟机进程状况工具
JDK很多小工具运用了UNIX命令的命令方式,比如jps(JVM Process Status Tool)是其中的典型,它是使用频率最高的JDK命令行工具。对于本地虚拟机进程来说,LVMID与操作系统的进程ID(Process Identifier, PID)是一致的,使用Windows的任务管理器或者UNIX的ps命令也可以查询到虚拟机进程的LVMID,但如果同时启动了多个虚拟机进程,无法根据进程名称定位时,那就只能依赖jps命令显示主类的功能才能区分了。
后面的如Bootstrap 就是主类名称。
- jstat:虚拟机统计信息监视工具
JVM Statistics-Monitoring Tool是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾手机、JIT编译等运行数据。
jstat -gc 4320 250 20表示查询进行4320的垃圾收集状况,每250毫秒一次,一共查询20次。
- jinfo:Java配置信息工具
- jmap:Java内存映象工具
- jhat:虚拟机堆转储快照分析工具
- jstack:Java堆栈跟踪工具
其他以及故障处理工具暂略。
Java虚拟机暂且介绍到这里,以后在工作中遇到,我会继续更新补充的。