Skip navigation links
Java™ Platform
Standard Ed. 8
compact3

Package java.lang.management

提供用于监视和管理Java虚拟机和Java运行时中其他组件的管理界面。

See: 描述

Package java.lang.management Description

提供用于监视和管理Java虚拟机和Java运行时中其他组件的管理界面。 它允许本地和远程监视和管理正在运行的Java虚拟机。

Platform MXBean

MXBean平台是符合JMX Instrumentation Specification的受管Bean ,仅使用一组基本数据类型。 每个平台MXBean是一个PlatformManagedObject与唯一的name

ManagementFactory

ManagementFactory类是Java平台的管理工厂类。 此类提供了一组静态工厂方法来获取Java平台的MXBeans,以允许应用程序直接访问MXBean。

可以使用getPlatformMBeanServer方法访问平台MBeanServer 在首次调用此方法时,它将创建平台MBeanServer并注册所有平台MXBeans,包括platform MXBeans 每个平台MXBean都使用管理界面规范中定义的唯一名称进行注册。 这是一个单独的MBeanServer,可以在同一个Java虚拟机中运行的不同托管组件共享。

互操作性

运行虚拟机的管理应用程序和平台MBeanServer可以互操作,而不需要平台MXBean接口使用的类。 在JMX连接器服务器和连接器客户端之间传输的数据类型是JMX open types ,这允许跨版本进行互操作。 当通过MBeanServer接口访问时,MXBean接口使用的数据类型将映射到打开类型。 有关详细信息,请参阅MXBean规范。

Ways to Access MXBeans

应用程序可以通过以下方式监视Java虚拟机和运行时的工具:

1.直接访问MXBean界面

2.通过MBeanServer间接访问MXBean接口

Platform Extension

Java虚拟机实现可以通过定义依赖于平台的接口将其平台扩展添加到管理接口,扩展标准管理接口以包括平台特定的度量和管理操作。 ManagementFactory类中的静态工厂方法将返回具有平台扩展名的MXBeans。

建议使用供应商特定的前缀(如供应商名称)来命名特定于平台的属性,以避免将来的扩展到标准管理界面和平台扩展之间的属性名称冲突。 如果标准管理接口的未来扩展定义了管理界面的新属性,并且属性名称与某些特定于供应商的属性的名称相同,则访问该供应商特定属性的应用程序将必须进行修改以应对版本和兼容性问题。

以下是展示如何从平台扩展程序访问属性的示例:

1)直接访问Oracle特定的MXBean界面

   List<com.sun.management.GarbageCollectorMXBean> mxbeans =
       ManagementFactory.getPlatformMXBeans(com.sun.management.GarbageCollectorMXBean.class);

   for (com.sun.management.GarbageCollectorMXBean gc : mxbeans) {
       // Get the standard attribute "CollectionCount"
       String count = mxbean.getCollectionCount();

       // Get the platform-specific attribute "LastGcInfo"
       GcInfo gcinfo = gc.getLastGcInfo();
       ...
   }

2)通过代理通过MBeanServer访问Oracle特定的MXBean接口

   MBeanServerConnection mbs;

   // Connect to a running JVM (or itself) and get MBeanServerConnection
   // that has the JVM MXBeans registered in it
   ...

   List<com.sun.management.GarbageCollectorMXBean> mxbeans =
       ManagementFactory.getPlatformMXBeans(mbs, com.sun.management.GarbageCollectorMXBean.class);

   for (com.sun.management.GarbageCollectorMXBean gc : mxbeans) {
       // Get the standard attribute "CollectionCount"
       String count = mxbean.getCollectionCount();

       // Get the platform-specific attribute "LastGcInfo"
       GcInfo gcinfo = gc.getLastGcInfo();
       ...
   }

除非另有说明,否则将null参数传递给此程序包中任何类或接口中的构造函数或方法将导致抛出NullPointerException

java.lang.management API是线程安全的。

从以下版本开始:
1.5
另请参见:
JMX Specification.
Skip navigation links
Java™ Platform
Standard Ed. 8