jmc.exe 是 Java Mission Control (JMC) 的命令行工具,用于启动 Java Mission Control 应用程序。JMC 是一个功能强大的工具,用于对 Java 应用程序进行管理、监视、概要分析和故障排除。
启动 JMC:
直接在命令行中运行 jmc.exe 即可启动 Java Mission Control 应用程序。通常,jmc.exe 位于 JDK 的 bin 目录下,可以通过 JAVA_HOME\bin\jmc.exe 来访问。如下图:
JMC 工具提供了深入且全面的性能数据收集和分析功能,包括但不限于以下方面:
实时监控:能够实时监测 Java 应用程序的内存使用、CPU 使用率、线程活动等关键性能指标。
飞行记录(Flight Recording):可以配置并启动对应用程序的性能数据记录,包括方法执行时间、内存分配等详细信息。
内存分析:帮助分析堆内存的使用情况,查找可能的内存泄漏。
线程分析:深入了解线程的状态、阻塞情况和竞争条件。
热点方法检测:识别应用程序中执行时间最长或最频繁调用的方法。
事件分析:查看各种与性能相关的事件,如垃圾回收事件。
JMC 允许用户连接到远程 Java 应用程序的 JMX 代理,以进行实时监控和故障排除。
要连接到远程 JMX 代理,用户需要在 JMC 的用户界面中添加一个新的 JMX 连接,并指定 JMX 服务的 URL。这通常包括 JMX 代理的 IP 地址、端口号以及其他可能的连接参数。
当在 JMC 中设置 JMX 连接时,可能需要指定类似 service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi 的 URL,这个 URL 指定了 JMX 服务的位置和如何访问它。
其中:
<host> 和 <port> 分别替换为 JMX 代理所在的机器的 IP 地址和端口号。
rmi:// 表示使用 RMI (Remote Method Invocation) 协议进行通信。
/jndi/rmi:// 表示 JMX 服务是通过 JNDI (Java Naming and Directory Interface) 在 RMI 注册表中进行查找的。
/jmxrmi 是 JMX 代理在 RMI 注册表中的绑定名称。
如何添加 JMX 远程连接,如下图:
(1)点击菜单“文件(F)”->“连接...”菜单打开建立 JVM 连接的界面,如下图:
(2)JVM 连接界面显示了本地连接,以及“创建新链接”菜单,选中“创建新链接”,然后点击“下一步”建立 JVM 连接,如下图:
(3)在 JVM 连接页面设置 JMX 服务URL、用户、口令等信息,如下图: