Spec-Zone.ru › OpenJDK 24

Класс ManagementFactory

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

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

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

Каждый платформенный 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 для доступа к MXBeans локально или к определённому MBeanServerConnection для удалённого доступа к MXBeans. Атрибуты и операции MXBean используют только открытые типы JMX, которые включают базовые типы данных, CompositeData и TabularData, определённые в OpenType. Сопоставление указано в спецификации MXBean для деталей.

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

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

Список интерфейсов управления и их единственных экземпляров
Интерфейс управления Имя объекта
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 может быть ноль или один экземпляр следующих интерфейсов управления.

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

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

Список интерфейсов управления и их единственных экземпляров
Интерфейс управления Имя объекта
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

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

Modifier and Type Field Description
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.

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

Modifier and Type Method Description
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.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

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()
Возвращает управляемый объект для системы загрузки классов виртуальной машины Java.
Возвращает:
объект ClassLoadingMXBean для виртуальной машины Java.

getMemoryMXBean

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

getThreadMXBean

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

getRuntimeMXBean

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

getCompilationMXBean

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

getOperatingSystemMXBean

public static OperatingSystemMXBean getOperatingSystemMXBean()
Возвращает управляемый объект для операционной системы, на которой запущена виртуальная машина 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. Виртуальная машина может иметь один или более объектов GarbageCollectorMXBean. Она может добавлять или удалять объекты GarbageCollectorMXBean во время выполнения.
Возвращает:
список объектов GarbageCollectorMXBean.

getPlatformMBeanServer

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

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

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

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

Возвращает:
платформенный сервер управления MBeanServer; платформенные MXBeans регистрируются в платформенном сервере управления 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. Приложение, удалённо обращающееся к платформным MXBeans с помощью прокси, должно быть готово перехватить UndeclaredThrowableException и обработать его причину так, как если бы эта причина была брошена самим интерфейсом MBeanServerConnection.
  2. Если клиентское приложение разработано для удалённого доступа к MXBeans для работающей виртуальной машины с другой версией, чем версия, на которой работает приложение, оно должно быть готово к перехвату InvalidObjectException, который выбрасывается, когда прокси MXBean получает имя константы перечисления, отсутствующей в классе перечисления, загруженном в клиентском приложении. При этом InvalidObjectException будет обернут в UndeclaredThrowableException.
  3. MBeanServerInvocationHandler или его метод newProxyInstance не могут использоваться для создания прокси для платформенного MXBean. Объект прокси, созданный MBeanServerInvocationHandler, не обрабатывает свойства платформенных MXBeans, описанные в спецификации класса.
Параметры типа:
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)
Возвращает список платформ MXBeans, реализующих заданный mxbeanInterface в виртуальной машине Java. Возвращённый список может содержать ноль, один или несколько экземпляров. Количество экземпляров в возвращаемом списке определяется в спецификации заданного интерфейса управления. Порядок не определён, и нет гарантии, что возвращаемый список будет в том же порядке, что и в предыдущих вызовах.
Параметры типа:
T - параметр типа mxbeanInterface
Параметры:
mxbeanInterface - интерфейс управления платформным MXBean
Возвращает:
список платформ MXBeans, реализующих 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);
 
Type Parameters:
T - параметр типа mxbeanInterface
Parameters:
connection - MBeanServerConnection для перенаправления.
mxbeanInterface - интерфейс управления для платформенного MXBean с единственным экземпляром в контролируемой виртуальной машине Java, если реализован.
Returns:
прокси-объект платформенного MXBean для перенаправления вызовов методов mxbeanInterface через заданный MBeanServerConnection, или null, если не существует.
Throws:
IllegalArgumentException - если mxbeanInterface не является интерфейсом управления платформой или не является одиночным платформенным MXBean.
IOException - если произошла проблема с коммуникацией при доступе к MBeanServerConnection.
Since:
1.7
See Also:
  • newPlatformMXBeanProxy(javax.management.MBeanServerConnection, java.lang.String, java.lang.Class<T>)

getPlatformMXBeans

public static <T extends PlatformManagedObject> List<T> getPlatformMXBeans(MBeanServerConnection connection, Class<T> mxbeanInterface) throws IOException
Возвращает список прокси-объектов платформенных MXBean для перенаправления вызовов методов mxbeanInterface через заданный MBeanServerConnection. Возвращаемый список может содержать ноль, один или более экземпляров. Количество экземпляров в возвращаемом списке определяется в спецификации заданного интерфейса управления. Порядок неопределён, и нет гарантии, что возвращаемый список будет в том же порядке, что и предыдущие вызовы.
Type Parameters:
T - параметр типа mxbeanInterface
Parameters:
connection - MBeanServerConnection для перенаправления.
mxbeanInterface - интерфейс управления для платформенного MXBean
Returns:
список прокси-объектов платформенных MXBean для перенаправления вызовов методов mxbeanInterface через заданный MBeanServerConnection.
Throws:
IllegalArgumentException - если mxbeanInterface не является интерфейсом управления платформой.
IOException - если произошла проблема с коммуникацией при доступе к MBeanServerConnection.
Since:
1.7
See Also:
  • newPlatformMXBeanProxy(javax.management.MBeanServerConnection, java.lang.String, java.lang.Class<T>)

getPlatformManagementInterfaces

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

Отправить сообщение об ошибке или предложить улучшение
Для получения дополнительной информации о справочнике API и документации для разработчиков, посетите Документацию Java SE, которая содержит более подробные описания для разработчиков с концептуальными обзорами, определениями терминов, обходными путями и примерами рабочего кода. Другие версии.
Java является торговой маркой или зарегистрированной торговой маркой Oracle и/или её аффилированных компаний в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные компании, 500 Oracle Parkway, Redwood Shores, CA 94065 США.
Все права защищены. Использование регулируется лицензионными условиями и политикой перераспределения документации.
ПРОЕКТ 24-ea+36-Debian-1

© 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://download.java.net/java/early_access/jdk24/docs/api/java.management/java/lang/management/ManagementFactory.html

Spec-Zone.ru

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