Spec-Zone.ru › OpenJDK 27

Класс ManagementFactory

java.lang.Object
java.lang.management.ManagementFactory
public class ManagementFactory extends Object
Класс ManagementFactory является фабричным классом для получения управляемых компонентов платформы Java. Этот класс состоит из статических методов, каждый из которых возвращает один или несколько платформенных MXBean, представляющих интерфейс управления компонентом виртуальной машины Java.

Платформенные MXBean

Платформенный MXBean — это управляемый компонент, соответствующий спецификации инструментирования JMX и использующий только набор базовых типов данных. Приложение управления JMX и платформенный MBeanServer могут взаимодействовать без необходимости в классах для специфичных для MXBean типов данных. Типы данных, передаваемые между сервером JMX-коннектора и клиентом коннектора, являются открытыми типами, что позволяет взаимодействовать между разными версиями. Подробности см. в спецификации MXBean.

Каждый платформенный MXBean является PlatformManagedObject и имеет уникальное имя ObjectName для регистрации на платформенном MBeanServer, возвращаемое методом getObjectName.

Приложение может получить доступ к платформенному MXBean следующими способами:

1. Прямой доступ к интерфейсу MXBean

  • Получите экземпляр MXBean, вызвав метод getPlatformMXBean или getPlatformMXBeans, и получите локальный доступ к MXBean в работающей виртуальной машине.
  • Создайте экземпляр прокси MXBean, который перенаправляет вызовы методов заданному MBeanServer, вызвав метод getPlatformMXBean(MBeanServerConnection, Class) или getPlatformMXBeans(MBeanServerConnection, Class). Метод newPlatformMXBeanProxy также можно использовать для создания экземпляра прокси MXBean заданного ObjectName. Обычно прокси создают для удалённого доступа к MXBean другой работающей виртуальной машины.

2. Непрямой доступ к интерфейсу MXBean через MBeanServer

  • Используйте платформенный MBeanServer для локального доступа к MXBean или конкретный MBeanServerConnection для удалённого доступа к MXBean. Атрибуты и операции MXBean используют только открытые типы JMX, включая базовые типы данных, CompositeData и TabularData, определённые в OpenType. Сведения о соответствии типов см. в спецификации MXBean.

Метод getPlatformManagementInterfaces возвращает все интерфейсы управления, поддерживаемые в виртуальной машине Java, включая стандартные интерфейсы управления, перечисленные в таблицах ниже, а также интерфейсы управления, расширенные реализацией JDK.

Виртуальная машина Java содержит единственный экземпляр следующих интерфейсов управления:

Список интерфейсов управления и их единственных экземпляров
Интерфейс управления ObjectName
ClassLoadingMXBean java.lang:type=ClassLoading
MemoryMXBean java.lang:type=Memory
ThreadMXBean java.lang:type=Threading
RuntimeMXBean java.lang:type=Runtime
OperatingSystemMXBean java.lang:type=OperatingSystem
PlatformLoggingMXBean java.util.logging:type=Logging

Виртуальная машина Java содержит ноль или один экземпляр следующих интерфейсов управления.

Список интерфейсов управления и их единственных экземпляров
Интерфейс управления ObjectName
CompilationMXBean java.lang:type=Compilation

Виртуальная машина Java может содержать один или несколько экземпляров следующих интерфейсов управления.

Список интерфейсов управления и их единственных экземпляров
Интерфейс управления ObjectName
GarbageCollectorMXBean java.lang:type=GarbageCollector,name=имя сборщика
MemoryManagerMXBean java.lang:type=MemoryManager,name=имя менеджера
MemoryPoolMXBean java.lang:type=MemoryPool,name=имя пула
BufferPoolMXBean java.nio:type=BufferPool,name=имя пула
С версии:
1.5
См. также:
  • Спецификация JMX
  • Способы доступа к метрикам управления
  • MXBean

Краткое описание полей

Модификатор и тип Поле Описание
static final String CLASS_LOADING_MXBEAN_NAME
Строковое представление ObjectName для ClassLoadingMXBean.
static final String COMPILATION_MXBEAN_NAME
Строковое представление ObjectName для CompilationMXBean.
static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для GarbageCollectorMXBean.
static final String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для MemoryManagerMXBean.
static final String MEMORY_MXBEAN_NAME
Строковое представление ObjectName для MemoryMXBean.
static final String MEMORY_POOL_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для MemoryPoolMXBean.
static final String OPERATING_SYSTEM_MXBEAN_NAME
Строковое представление ObjectName для OperatingSystemMXBean.
static final String RUNTIME_MXBEAN_NAME
Строковое представление ObjectName для RuntimeMXBean.
static final String THREAD_MXBEAN_NAME
Строковое представление ObjectName для ThreadMXBean.

Краткое описание методов

Модификатор и тип Метод Описание
static ClassLoadingMXBean getClassLoadingMXBean()
Возвращает управляемый компонент для системы загрузки классов виртуальной машины Java.
static CompilationMXBean getCompilationMXBean()
Возвращает управляемый компонент для системы компиляции виртуальной машины Java.
static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()
Возвращает список объектов GarbageCollectorMXBean в виртуальной машине Java.
static List<MemoryManagerMXBean> getMemoryManagerMXBeans()
Возвращает список объектов MemoryManagerMXBean в виртуальной машине Java.
static MemoryMXBean getMemoryMXBean()
Возвращает управляемый компонент для системы памяти виртуальной машины Java.
static List<MemoryPoolMXBean> getMemoryPoolMXBeans()
Возвращает список объектов MemoryPoolMXBean в виртуальной машине Java.
static OperatingSystemMXBean getOperatingSystemMXBean()
Возвращает управляемый компонент для операционной системы, в которой работает виртуальная машина Java.
static Set<Class<? extends PlatformManagedObject>> getPlatformManagementInterfaces()
Возвращает набор объектов Class, подинтерфейса PlatformManagedObject, представляющих все интерфейсы управления для мониторинга и управления платформой Java.
static MBeanServer getPlatformMBeanServer()
Возвращает платформенный MBeanServer.
static <T extends PlatformManagedObject>
T
getPlatformMXBean(Class<T> mxbeanInterface)
Возвращает платформенный MXBean, реализующий заданный mxbeanInterface, для которого в виртуальной машине Java предусмотрен единственный экземпляр.
static <T extends PlatformManagedObject>
T
getPlatformMXBean(MBeanServerConnection connection, Class<T> mxbeanInterface)
Возвращает прокси платформенного MXBean для mxbeanInterface, для которого в виртуальной машине Java предусмотрен единственный экземпляр; прокси перенаправляет вызовы методов через заданный MBeanServerConnection.
static <T extends PlatformManagedObject>
List<T>
getPlatformMXBeans(Class<T> mxbeanInterface)
Возвращает список платформенных MXBean, реализующих заданный mxbeanInterface в виртуальной машине Java.
static <T extends PlatformManagedObject>
List<T>
getPlatformMXBeans(MBeanServerConnection connection, Class<T> mxbeanInterface)
Возвращает список прокси платформенных MXBean для перенаправления вызовов методов mxbeanInterface через заданный MBeanServerConnection.
static RuntimeMXBean getRuntimeMXBean()
Возвращает управляемый компонент для системы выполнения виртуальной машины Java.
static ThreadMXBean getThreadMXBean()
Возвращает управляемый компонент для системы потоков виртуальной машины Java.
static <T> T newPlatformMXBeanProxy(MBeanServerConnection connection, String mxbeanName, Class<T> mxbeanInterface)
Возвращает прокси интерфейса платформенного MXBean с заданным именем MXBean, который перенаправляет вызовы методов через заданный MBeanServerConnection.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание полей

CLASS_LOADING_MXBEAN_NAME

public static final String CLASS_LOADING_MXBEAN_NAME
Строковое представление ObjectName для ClassLoadingMXBean.
См. также:
  • Значения константных полей

COMPILATION_MXBEAN_NAME

public static final String COMPILATION_MXBEAN_NAME
Строковое представление ObjectName для CompilationMXBean.
См. также:
  • Значения константных полей

MEMORY_MXBEAN_NAME

public static final String MEMORY_MXBEAN_NAME
Строковое представление ObjectName для MemoryMXBean.
См. также:
  • Значения константных полей

OPERATING_SYSTEM_MXBEAN_NAME

public static final String OPERATING_SYSTEM_MXBEAN_NAME
Строковое представление ObjectName для OperatingSystemMXBean.
См. также:
  • Значения константных полей

RUNTIME_MXBEAN_NAME

public static final String RUNTIME_MXBEAN_NAME
Строковое представление ObjectName для RuntimeMXBean.
См. также:
  • Значения константных полей

THREAD_MXBEAN_NAME

public static final String THREAD_MXBEAN_NAME
Строковое представление ObjectName для ThreadMXBean.
См. также:
  • Значения константных полей

GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE

public static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для GarbageCollectorMXBean. Уникальный ObjectName для GarbageCollectorMXBean можно сформировать, добавив к этой строке «,name=имя сборщика мусора».
См. также:
  • Значения константных полей

MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE

public static final String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для MemoryManagerMXBean. Уникальный ObjectName для MemoryManagerMXBean можно сформировать, добавив к этой строке «,name=имя менеджера».
См. также:
  • Значения константных полей

MEMORY_POOL_MXBEAN_DOMAIN_TYPE

public static final String MEMORY_POOL_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для MemoryPoolMXBean. Уникальный ObjectName для MemoryPoolMXBean можно сформировать, добавив к этой строке ,name=имя пула.
См. также:
  • Значения константных полей

Подробное описание методов

getClassLoadingMXBean

public static ClassLoadingMXBean getClassLoadingMXBean()
Возвращает управляемый bean подсистемы загрузки классов виртуальной машины Java.
Возвращает:
объект ClassLoadingMXBean для виртуальной машины Java.

getMemoryMXBean

public static MemoryMXBean getMemoryMXBean()
Возвращает управляемый bean подсистемы памяти виртуальной машины Java.
Возвращает:
объект MemoryMXBean для виртуальной машины Java.

getThreadMXBean

public static ThreadMXBean getThreadMXBean()
Возвращает управляемый bean подсистемы потоков виртуальной машины Java.
Возвращает:
объект ThreadMXBean для виртуальной машины Java.

getRuntimeMXBean

public static RuntimeMXBean getRuntimeMXBean()
Возвращает управляемый bean среды выполнения виртуальной машины Java.
Возвращает:
объект RuntimeMXBean для виртуальной машины Java.

getCompilationMXBean

public static CompilationMXBean getCompilationMXBean()
Возвращает управляемый bean подсистемы компиляции виртуальной машины Java. Этот метод возвращает null, если в виртуальной машине Java отсутствует подсистема компиляции.
Возвращает:
объект CompilationMXBean для виртуальной машины Java или null, если в виртуальной машине Java отсутствует подсистема компиляции.

getOperatingSystemMXBean

public static OperatingSystemMXBean getOperatingSystemMXBean()
Возвращает управляемый bean операционной системы, в которой выполняется виртуальная машина Java.
Возвращает:
объект OperatingSystemMXBean для виртуальной машины Java.

getMemoryPoolMXBeans

public static List<MemoryPoolMXBean> getMemoryPoolMXBeans()
Возвращает список объектов MemoryPoolMXBean в виртуальной машине Java. Виртуальная машина Java может иметь один или несколько пулов памяти. Во время выполнения она может добавлять или удалять пулы памяти.
Возвращает:
список объектов MemoryPoolMXBean.

getMemoryManagerMXBeans

public static List<MemoryManagerMXBean> getMemoryManagerMXBeans()
Возвращает список объектов MemoryManagerMXBean в виртуальной машине Java. Виртуальная машина Java может иметь один или несколько менеджеров памяти. Во время выполнения она может добавлять или удалять менеджеры памяти.
Возвращает:
список объектов MemoryManagerMXBean.

getGarbageCollectorMXBeans

public static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()
Возвращает список объектов GarbageCollectorMXBean в виртуальной машине Java. Виртуальная машина Java может иметь один или несколько объектов GarbageCollectorMXBean. Во время выполнения она может добавлять или удалять GarbageCollectorMXBean.
Возвращает:
список объектов GarbageCollectorMXBean.

getPlatformMBeanServer

public static MBeanServer getPlatformMBeanServer()
Возвращает платформенный MBeanServer. При первом вызове этого метода он сначала создает платформенный MBeanServer, вызывая метод MBeanServerFactory.createMBeanServer, и регистрирует каждый платформенный MXBean в этом платформенном MBeanServer с его ObjectName. При последующих вызовах этот метод просто возвращает изначально созданный платформенный MBeanServer.

Динамически создаваемые и уничтожаемые MXBean, например пулы памяти pools и managers, автоматически регистрируются и удаляются из регистрации в платформенном MBeanServer.

Если задано системное свойство javax.management.builder.initial, создание платформенного MBeanServer выполняется указанным MBeanServerBuilder.

Рекомендуется использовать этот платформенный MBeanServer также для регистрации других управляемых bean приложения, помимо платформенных MXBean. Это позволит публиковать все MBean через один и тот же MBeanServer и тем самым упростит публикацию по сети и обнаружение. Следует избегать конфликтов имен с платформенными MXBean.

Возвращает:
платформенный MBeanServer; платформенные MXBean регистрируются в платформенном MBeanServer при первом вызове этого метода.
См. также:
  • MBeanServerFactory
  • MBeanServerFactory.createMBeanServer()

newPlatformMXBeanProxy

public static <T> T newPlatformMXBeanProxy(MBeanServerConnection connection, String mxbeanName, Class<T> mxbeanInterface) throws IOException
Возвращает прокси для интерфейса платформенного MXBean с заданным именем MXBean, который перенаправляет вызовы методов через заданное MBeanServerConnection.

Этот метод эквивалентен:

Proxy.newProxyInstance(mxbeanInterface.getClassLoader(), new Class[] { mxbeanInterface }, handler)
где handler — это InvocationHandler, которому передаются вызовы методов интерфейса MXBean. Этот handler преобразует входной параметр из типа данных MXBean в соответствующий ему открытый тип перед передачей в MBeanServer, а также преобразует возвращаемое значение вызова метода MXBean через MBeanServer из открытого типа в соответствующий тип возвращаемого значения, объявленный в интерфейсе MXBean.

Если MXBean является источником уведомлений (то есть реализует NotificationEmitter), этот прокси будет реализовывать как mxbeanInterface, так и NotificationEmitter.

Примечания:

  1. Использование прокси MXBean — это удобный способ удаленного доступа к платформенному MXBean работающей виртуальной машины. Все вызовы методов прокси MXBean перенаправляются в MBeanServerConnection, где при возникновении проблем со связью с сервером коннектора может быть выброшено IOException. Если оно выброшено, IOException будет обернуто в UndeclaredThrowableException. Приложение, удаленно обращающееся к платформенным MXBean через прокси, должно быть готово перехватывать UndeclaredThrowableException и обрабатывать его причину так, как если бы эта причина была выброшена интерфейсом MBeanServerConnection.
  2. Если клиентское приложение предназначено для удаленного доступа к MXBean работающей виртуальной машины, версия которой отличается от версии приложения, оно должно быть готово перехватывать InvalidObjectException. Это исключение выбрасывается, когда прокси MXBean получает имя константы перечисления, отсутствующей в классе перечисления, загруженном клиентским приложением. Если оно выброшено, InvalidObjectException будет обернуто в UndeclaredThrowableException.
  3. MBeanServerInvocationHandler или его метод newProxyInstance нельзя использовать для создания прокси платформенного MXBean. Объект-прокси, созданный с помощью MBeanServerInvocationHandler, не обрабатывает свойства платформенных MXBean, описанные в спецификации класса.
Параметры типа:
T — параметр типа mxbeanInterface
Параметры:
connection — MBeanServerConnection, которому нужно перенаправлять вызовы.
mxbeanName — имя платформенного MXBean в connection, которому нужно перенаправлять вызовы. mxbeanName должно иметь формат ObjectName.
mxbeanInterface — интерфейс MXBean, который должен реализовывать прокси.
Возвращает:
прокси для интерфейса платформенного MXBean с заданным именем MXBean, который перенаправляет вызовы методов через заданное MBeanServerConnection, или null, если такой интерфейс не существует.
Выбрасывает:
IllegalArgumentException — если
  • mxbeanName не имеет допустимого формата ObjectName или
  • именованный MXBean в connection не является MXBean, предоставляемым платформой, или
  • именованный MXBean не зарегистрирован в MBeanServerConnection, или
  • именованный MXBean не является экземпляром заданного mxbeanInterface
IOException — если при доступе к MBeanServerConnection возникла проблема со связью.

getPlatformMXBean

public static <T extends PlatformManagedObject> T getPlatformMXBean(Class<T> mxbeanInterface)
Возвращает платформенный MXBean, реализующий заданный mxbeanInterface, для которого спецификацией предусмотрен только один экземпляр в виртуальной машине Java. Этот метод может вернуть null, если интерфейс управления не реализован в виртуальной машине Java (например, виртуальная машина Java без подсистемы компиляции не реализует CompilationMXBean); в противном случае этот метод эквивалентен вызову:
   getPlatformMXBeans(mxbeanInterface).get(0);
Параметры типа:
T — параметр типа mxbeanInterface
Параметры:
mxbeanInterface — интерфейс управления для платформенного MXBean, имеющего один экземпляр в виртуальной машине Java, если он реализован.
Возвращает:
платформенный MXBean, реализующий mxbeanInterface, или null, если он не существует.
Выбрасывает:
IllegalArgumentException — если mxbeanInterface не является интерфейсом управления платформой или платформенным MXBean-одиночкой.
С момента версии:
1.7

getPlatformMXBeans

public static <T extends PlatformManagedObject> List<T> getPlatformMXBeans(Class<T> mxbeanInterface)
Возвращает список платформенных MXBean, реализующих заданный mxbeanInterface в виртуальной машине Java. Возвращаемый список может содержать ноль, один или несколько экземпляров. Количество экземпляров в возвращаемом списке определяется спецификацией заданного интерфейса управления. Порядок не определен, и нет гарантии, что возвращаемый список будет иметь тот же порядок, что и при предыдущих вызовах.
Параметры типа:
T — параметр типа mxbeanInterface
Параметры:
mxbeanInterface — интерфейс управления для платформенного MXBean
Возвращает:
список платформенных MXBean, реализующих mxbeanInterface.
Выбрасывает:
IllegalArgumentException — если mxbeanInterface не является интерфейсом управления платформой.
С момента версии:
1.7

getPlatformMXBean

public static <T extends PlatformManagedObject> T getPlatformMXBean(MBeanServerConnection connection, Class<T> mxbeanInterface) throws IOException
Возвращает прокси платформенного MXBean для mxbeanInterface, для которого предусмотрен только один экземпляр в виртуальной машине Java. Прокси будет перенаправлять вызовы методов через заданное MBeanServerConnection. Этот метод может вернуть null, если интерфейс управления не реализован в контролируемой виртуальной машине Java (например, виртуальная машина Java без подсистемы компиляции не реализует CompilationMXBean); в противном случае этот метод эквивалентен вызову:
    getPlatformMXBeans(connection, mxbeanInterface).get(0);
Параметры типа:
T — параметр типа mxbeanInterface
Параметры:
connection — MBeanServerConnection, которому нужно перенаправлять вызовы.
mxbeanInterface — интерфейс управления для платформенного MXBean, имеющего один экземпляр в контролируемой виртуальной машине Java, если он реализован.
Возвращает:
прокси платформенного MXBean для перенаправления вызовов методов mxbeanInterface через заданное MBeanServerConnection или null, если он не существует.
Выбрасывает:
IllegalArgumentException — если mxbeanInterface не является интерфейсом управления платформой или платформенным MXBean-одиночкой.
IOException — если при доступе к MBeanServerConnection возникла проблема со связью.
С момента версии:
1.7
См. также:
  • newPlatformMXBeanProxy(MBeanServerConnection, String, Class)

getPlatformMXBeans

public static <T extends PlatformManagedObject> List<T> getPlatformMXBeans(MBeanServerConnection connection, Class<T> mxbeanInterface) throws IOException
Возвращает список прокси платформенных MXBean для перенаправления вызовов методов mxbeanInterface через заданное MBeanServerConnection. Возвращаемый список может содержать ноль, один или несколько экземпляров. Количество экземпляров в возвращаемом списке определяется спецификацией заданного интерфейса управления. Порядок не определен, и нет гарантии, что возвращаемый список будет иметь тот же порядок, что и при предыдущих вызовах.
Параметры типа:
T — параметр типа mxbeanInterface
Параметры:
connection — MBeanServerConnection, которому нужно перенаправлять вызовы.
mxbeanInterface — интерфейс управления для платформенного MXBean
Возвращает:
список прокси платформенных MXBean для перенаправления вызовов методов mxbeanInterface через заданное MBeanServerConnection.
Выбрасывает:
IllegalArgumentException — если mxbeanInterface не является интерфейсом управления платформой.
IOException — если при доступе к MBeanServerConnection возникла проблема со связью.
С момента версии:
1.7
См. также:
  • newPlatformMXBeanProxy(MBeanServerConnection, String, Class)

getPlatformManagementInterfaces

public static Set<Class<? extends PlatformManagedObject>> getPlatformManagementInterfaces()
Возвращает набор объектов Class, подинтерфейсов PlatformManagedObject, представляющих все интерфейсы управления для мониторинга и управления платформой Java.
Возвращает:
набор объектов Class, подинтерфейсов PlatformManagedObject, представляющих интерфейсы управления для мониторинга и управления платформой Java.
С момента версии:
1.7

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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