JVM给我们提供了一些用于监控管理的命令,具体查看JDK的bin目录:
可见工具非常多,我们来一一看看常用的命令。
一、命令
01、javac:将.java文件编译成.class文件
02、java:执行.class文件
03、javah:基于.class文件生成C++ .h头文件,主要用于jni调用时使用,如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include<jni.h>
/* Header for class Test */
#ifndef_Included_Test
#define_Included_Test
#ifdef__cplusplus
extern"C"{
#endif
#ifdef__cplusplus
}
#endif
#endif
04、javap:反编译,可以将编译后的.class文件,反编译成java类,输出出来,如下:
03、jps:查看当前运行的java进程,可以查看到线程的ID、入口类、启动参数等
04、jstat:查看指定虚拟机进程的各种运行状态信息,包含:类装载、垃圾收集、运行期编译状况等信息
05、jinfo:可以实时查看虚拟机的各项参数,比如:System.getProperties()的参数,并且可以修改其值
06、jmap:生成堆内存的dump日志
生成到文件:
07、jstack:查看指定虚拟机各个线程的运行状态
08、jhat:针对dump文件,暴露一个http服务,供外部可以查看分析
另外,还可以通过OQL语言查询指定对象的内容
二、其他工具
1、jconsole
2、jvisualvm:实现对内存、线程、CPU的可视化查看;