Java 教程是针对 JDK 8 编写的。本页面描述的示例和实践不利用后续版本引入的改进,并且可能使用不再可用的技术。
请参阅 Java 语言更改 以了解 Java SE 9 及后续版本中的更新语言功能的概要。
请参阅 JDK 发行说明 以获取有关所有 JDK 发行版的新功能、增强功能以及已删除或已弃用选项的信息。
JMX技术也可以用于监视和管理Java虚拟机(Java VM)。
Java虚拟机内置了仪表化功能,可以使用JMX技术来监视和管理它。这些内置的管理工具通常被称为Java VM的开箱即用(out-of-the-box)管理工具。为了监视和管理Java VM的不同方面,Java VM包括一个平台MBean服务器和专用的MXBeans,供符合JMX规范的管理应用程序使用。
平台MXBeans是一组与Java SE平台一起提供的MXBeans,用于监视和管理Java VM和Java Runtime Environment(JRE)的其他组件。每个平台MXBean封装了Java VM的一部分功能,例如类加载系统、即时(JIT)编译系统、垃圾收集器等等。通过使用符合JMX规范的监视和管理工具,可以显示和与这些MXBeans进行交互,以便监视和管理这些不同的VM功能。一个这样的监视和管理工具是Java SE平台的JConsole图形用户界面(GUI)。
Java SE平台提供了一个标准的平台MBean服务器,用于注册这些平台MXBeans。平台MBean服务器还可以注册您希望创建的任何其他MBeans。
Java SE平台包含符合JMX规范的JConsole监视和管理工具。JConsole使用Java VM的广泛仪表化功能(平台MXBeans)提供有关在Java平台上运行的应用程序的性能和资源消耗的信息。
因为标准的监视和管理工具实现了JMX技术并内置在Java SE平台中,所以您可以在不编写任何JMX API代码的情况下看到开箱即用的JMX技术效果。您可以通过启动一个Java应用程序,然后使用JConsole来监视它。
此过程演示了如何监视记事本Java应用程序。在Java SE 6版本之前的Java SE平台版本中,您需要使用以下选项启动要使用JConsole监视的应用程序。
-Dcom.sun.management.jmxremote
然而,Java SE 6平台提供的版本的JConsole可以连接到支持Attach API的任何本地应用程序。换句话说,任何在Java SE 6 HotSpot VM中启动的应用程序都会被JConsole自动检测到,不需要使用上述命令行选项启动。
java -jar jdk_home/demo/jfc/Notepad/Notepad.jar
其中,jdk_home
是安装Java开发工具包(JDK)的目录。如果您没有运行Java SE平台的6版本,则需要使用以下命令:
java -Dcom.sun.management.jmxremote -jar jdk_home/demo/jfc/Notepad/Notepad.jar
jconsole
显示一个新连接对话框。
Notepad.jar
,然后点击连接按钮。
JConsole将打开并连接到Notepad.jar
进程。当JConsole打开时,您将看到与Notepad相关的监控和管理信息的概览。例如,您可以查看应用程序消耗的堆内存量,应用程序当前运行的线程数以及应用程序消耗的中央处理单元(CPU)容量。
每个选项卡提供有关Notepad运行的Java虚拟机不同功能区域的更详细信息。所有呈现的信息都是从本教程中提到的各种JMX技术MXBean中获取的。所有平台MXBean可以在MBeans选项卡中显示。下一节将介绍如何检查MBeans选项卡。