java.lang.management

描述,平台擴展,

描述

ClassLoadingMXBean Java 虛擬機的類載入系統。
CompilationMXBean Java 虛擬機編譯系統
MemoryMXBean Java 虛擬機的記憶體系統。
ThreadMXBean Java 虛擬機的執行緒系統。
RuntimeMXBean Java 虛擬機的運行時系統。
OperatingSystemMXBean Java 虛擬機在其上運行的作業系統。
GarbageCollectorMXBean Java 虛擬機中的垃圾回收器。
MemoryManagerMXBean Java 虛擬機中的記憶體管理器
MemoryPoolMXBean Java 虛擬機中的記憶體池
平台 MXBean 是一種託管 Bean,它定義平台一個組件的管理接口,在 ManagementFactory 類中定義。

平台擴展

Java 虛擬機實現通過定義與平台有關的接口(它擴展了標準管理接口,以包括特定於平台的規格和管理操作),可以將其平台擴展添加到管理接口。ManagementFactory 類中的靜態工廠方法將返回具有平台擴展的 MBean。
建議使用特定於供應商的前綴(如供應商的名稱)對特定於平台的屬性進行命名,以避免標準管理接口的未來擴展與平台擴展之間的屬性名稱衝突。如果標準管理接口的未來擴展為管理接口定義了一個新屬性,而該屬性名稱碰巧與某個特定於供應商的屬性的名稱相同,則必須修改訪問該特定於供應商的屬性的應用程式,以處理版本控制和兼容性問題。
以下示例演示了如何訪問 Sun 的 RuntimeMXBean 實現中的特定於平台的屬性。
1) 直接訪問特定於 Sun 的 MXBean 接口
com.sun.management.RuntimeMXBean mxbean =
(com.sun.management.RuntimeMXBean) ManagementFactory.getRuntimeMXBean();
// Get the standard attribute "VmVendor"
String vendor = mxbean.getVmVendor();
// Get the platform-specific attribute "Bar"
BarType bar = mxbean.getBar();
2) 通過 MBeanServer 訪問特定於 Sun 的 MXBean 接口
MBeanServerConnection mbs;
// Connect to a running JVM (or itself) and get MBeanServerConnection
// that has the JVM MXBeans registered in it
...
try {
// Assuming the RuntimeMXBean has been registered in mbs
ObjectName oname = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);
// Get standard attribute "VmVendor"
String vendor = (String) mbs.getAttribute(oname, "VmVendor");
// Check if this MXBean contains Sun's extension
if (mbs.isInstanceOf(oname, "com.sun.management.RuntimeMXBean")) {
// Get platform-specific attribute "Bar"
BarType bar = (String) mbs.getAttribute(oname, "Bar");
}
} catch (....) {
// Catch the exceptions thrown by ObjectName constructor
// and MBeanServer methods
...
}
除非另有說明,向此包的任何類或接口中的構造方法或方法傳遞 null 變數,將會拋出 NullPointerException。
從以下版本開始:
1.5
另請參見:
JMX Specification.

相關詞條

熱門詞條

聯絡我們