Spec-Zone.ru › OpenJDK 25

Package java.lang.management

package java.lang.management
Предоставляет интерфейсы управления для мониторинга и управления виртуальной машиной Java и другими компонентами среды выполнения Java. Позволяет выполнять локальный и удалённый мониторинг и управление работающей виртуальной машиной Java.

Платформенный 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
См. также:
  • Спецификация JMX
java.base
Модуль Пакет Описание
java.lang
Предоставляет классы, являющиеся основой языка программирования Java.
Класс Описание
BufferPoolMXBean
Интерфейс управления пулом буферов, например пулом буферов direct или mapped.
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.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API