JDK的bin目录下面有许多命令,可以很方便的堆虚拟机进行监控或者故障排查等

工具具体使用

bin目录下的命令本质上都是Tools.jar的一层封装,首先对比一下常用的命令功能

bin目录命令名称 功能描述
apt 注解处理工具(Annotation Processing Tool),主要用于注解处理。
extcheck 扩展检测工具,主要用于检测指定jar文件与当前已安装的Java SDK扩展之间是否存在版本冲突。
idlj IDL转Java编译器(IDL-to-Java Compiler),用于为指定的IDL文件生成Java绑定。IDL意即接口定义语言(Interface Definition Language)。
jar jar文件管理工具,主要用于打包压缩、解压jar文件。
java Java运行工具,用于运行.class字节码文件或.jar文件
javac Java编译工具(Java Compiler),用于编译Java源代码文件。
javadoc Java文档工具,主要用于根据Java源代码中的注释信息生成HTML格式的API帮助文档
javap Java反编译工具,主要用于根据Java字节码文件反汇编为Java源代码文件。
java-rmi Java远程方法调用(Java Remote Method Invocation)工具,主要用于在客户机上调用远程服务器上的对象。
jcmd Java 命令行(Java Command),用于向正在运行的JVM发送诊断命令请求。
jconsole 图形化用户界面的监测工具,主要用于监测并显示运行于Java平台上的应用程序的性能和资源占用等信息。
jdb Java调试工具(Java Debugger),主要用于对Java应用进行断点调试。
jhat Java堆分析工具(Java Heap Analysis Tool),用于分析Java堆内存中的对象信息。
jinfo Java配置信息工具(Java Configuration Information),用于打印指定Java进程、核心文件或远程调试服务器的配置信息。
jmap Java内存映射工具(Java Memory Map),主要用于打印指定Java进程、核心文件或远程调试服务器的共享对象内存映射或堆内存细节
jmc Java任务控制工具(Java Mission Control),主要用于HotSpot JVM的生产时间监测、分析、诊断。
jps JVM进程状态工具(JVM Process Status Tool),用于显示目标系统上的HotSpot JVM的Java进程信息。
jrunscript Java命令行脚本外壳工具(command line script shell),主要用于解释执行javascript、groovy、ruby等脚本语言。
jsadebugd Java可用性代理调试守护进程(Java Serviceability Agent Debug Daemon),主要用于附加到指定的Java进程、核心文件,或充当一个调试服务器。
jstack Java堆栈跟踪工具,主要用于打印指定Java进程、核心文件或远程调试服务器的Java线程的堆栈跟踪信息。
jstat JVM统计监测工具(JVM Statistics Monitoring Tool),主要用于监测并显示JVM的性能统计信息。
jstatd jstatd(VM jstatd Daemon)工具是一个RMI服务器应用,用于监测HotSpot JVM的创建和终止,并提供一个接口,允许远程监测工具附加到运行于本地主机的JVM上。
jvisualvm JVM监测、故障排除、分析工具,主要以图形化界面的方式提供运行于指定虚拟机的Java应用程序的详细信息。
schemagen XML schema生成器,用于java类生成XML schema文件。
xjc 主要用于根据XML schema文件生成对应的Java类。

需要在项目启动的时候添加对应参数:

# 远程服务器ip,对应的端口,是否使用SSL和权限验证等
-Djava.rmi.server.hostname=192.168.120.30 -Dcom.sun.management.jmxremote.port=9528 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

新建JMX连接,

监控效果如图,还可以查jvm参数信息,线程情况等: