Package java.lang.management
Платформенный MXBean
Платформенный MXBean — это управляемый компонент, соответствующий спецификации инструментирования JMX и использующий только набор базовых типов данных. Каждый платформенный MXBean является PlatformManagedObject с уникальным именем.
ManagementFactory
Класс ManagementFactory является фабричным классом управления для платформы Java. Этот класс предоставляет набор статических фабричных методов для получения MXBean платформы Java, позволяя приложению напрямую обращаться к MXBean.
Доступ к платформенному MBeanServer можно получить с помощью метода getPlatformMBeanServer. При первом вызове этого метода он создаёт платформенный MBeanServer и регистрирует все платформенные MXBean, включая платформенные MXBean. Каждый платформенный MXBean регистрируется под уникальным именем, определённым в спецификации интерфейса управления. Это единый MBeanServer, совместно используемый различными управляемыми компонентами, работающими в одной виртуальной машине Java.
Совместимость
Приложение управления и платформенный MBeanServer работающей виртуальной машины могут взаимодействовать без необходимости наличия классов, используемых интерфейсами платформенных MXBean. Типы данных, передаваемые между сервером соединителя JMX и клиентом соединителя, являются открытыми типами JMX, что обеспечивает взаимодействие между версиями. Типы данных, используемые интерфейсами MXBean, при обращении через интерфейс MBeanServer преобразуются в открытые типы. Подробные сведения см. в спецификации MXBean.
Способы доступа к MXBean
Приложение может отслеживать инструментарий виртуальной машины Java и среды выполнения следующими способами:
1. Прямой доступ к интерфейсу MXBean
- Получение экземпляра MXBean локально в работающей виртуальной машине Java:
RuntimeMXBean mxbean = ManagementFactory.getRuntimeMXBean(); // Get the standard attribute "VmVendor" String vendor = mxbean.getVmVendor();
Или вызовом метода
getPlatformMXBeanилиgetPlatformMXBeans:RuntimeMXBean mxbean = ManagementFactory.getPlatformMXBean(RuntimeMXBean.class); // Get the standard attribute "VmVendor" String vendor = mxbean.getVmVendor();
- Создание прокси-экземпляра MXBean, перенаправляющего вызовы методов указанному MBeanServer:
MBeanServerConnection mbs; // Connect to a running JVM (or itself) and get MBeanServerConnection // that has the JVM MBeans registered in it ... // Get a MBean proxy for RuntimeMXBean interface RuntimeMXBean proxy =ManagementFactory.getPlatformMXBean(mbs, RuntimeMXBean.class); // Get standard attribute "VmVendor" String vendor = proxy.getVmVendor();Прокси обычно используется для доступа к MXBean удалённой виртуальной машины Java. Альтернативный способ создания прокси MXBean:
RuntimeMXBean proxy =ManagementFactory.newPlatformMXBeanProxy(mbs, ManagementFactory.RUNTIME_MXBEAN_NAME, RuntimeMXBean.class);
2. Косвенный доступ к интерфейсу MXBean через MBeanServer
- Использование
platform MBeanServerдля доступа к MXBean локально или указанногоMBeanServerConnectionдля удалённого доступа к MXBean. Атрибуты и операции MXBean используют только открытые типы JMX, включая базовые типы данных,CompositeDataиTabularData, определённые вOpenType.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"); } catch (....) { // Catch the exceptions thrown by ObjectName constructor // and MBeanServer.getAttribute method ... }
Расширение платформы
Реализация виртуальной машины Java может добавить расширение своей платформы к интерфейсу управления, определив платформозависимые интерфейсы, расширяющие стандартные интерфейсы управления метриками и операциями управления, специфичными для платформы. Статические фабричные методы класса ManagementFactory возвращают MXBean с расширением платформы.
Рекомендуется задавать именам платформозависимых атрибутов префикс, специфичный для поставщика, например имя поставщика, чтобы избежать совпадения имён атрибутов при будущих расширениях стандартного интерфейса управления и расширения платформы. Если в будущем в стандартном интерфейсе управления для интерфейса управления будет определён новый атрибут с именем, совпадающим с именем атрибута, специфичного для поставщика, приложениям, обращающимся к этому атрибуту, придётся изменить код для решения проблем с версиями и совместимостью.
Ниже приведён пример доступа к атрибуту расширения платформы:
1) Прямой доступ к интерфейсу MXBean, специфичному для Oracle
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) Доступ к интерфейсу MXBean, специфичному для Oracle, через прокси MBeanServer
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.
API java.lang.management является потокобезопасным.
- Начиная с:
- 1.5
- См. также:
| Класс | Описание |
|---|---|
| BufferPoolMXBean | |
| ClassLoadingMXBean | Интерфейс управления системой загрузки классов виртуальной машины Java. |
| CompilationMXBean | Интерфейс управления системой компиляции виртуальной машины Java. |
| GarbageCollectorMXBean | Интерфейс управления сборкой мусора виртуальной машины Java. |
| LockInfo | Информация о блокировке. |
| ManagementFactory | Класс ManagementFactory является фабричным классом для получения управляемых компонентов платформы Java. |
| ManagementPermission | Устарело, подлежит удалению: этот элемент API будет удалён в будущей версии. Этот класс был полезен только вместе с диспетчером безопасности, поддержка которого прекращена. |
| MemoryManagerMXBean | Интерфейс управления менеджером памяти. |
| MemoryMXBean | Интерфейс управления системой памяти виртуальной машины Java. |
| MemoryNotificationInfo | Информация об уведомлении о памяти. |
| MemoryPoolMXBean | Интерфейс управления пулом памяти. |
| MemoryType | Типы memory pools. |
| MemoryUsage | Объект MemoryUsage представляет собой снимок использования памяти. |
| MonitorInfo | Информация о блокировке монитора объекта. |
| OperatingSystemMXBean | Интерфейс управления операционной системой, в которой работает виртуальная машина Java. |
| PlatformLoggingMXBean | Интерфейс управления подсистемой ведения журналов. |
| PlatformManagedObject | Платформенный управляемый объект — это MXBean JMX для мониторинга и управления компонентом платформы Java. |
| RuntimeMXBean | Интерфейс управления системой среды выполнения виртуальной машины Java. |
| ThreadInfo | Информация о потоке. |
| ThreadMXBean | Интерфейс управления системой потоков виртуальной машины Java. |
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management/java/lang/management/package-summary.html