Module  java.management
软件包  java.lang.management

Class ManagementFactory

    • 方法详细信息

      • getClassLoadingMXBean

        public static ClassLoadingMXBean getClassLoadingMXBean​()
        返回Java虚拟机的类加载系统的托管bean。
        结果
        一个用于Java虚拟机的ClassLoadingMXBean对象。
      • getMemoryMXBean

        public static MemoryMXBean getMemoryMXBean​()
        返回Java虚拟机的内存系统的托管bean。
        结果
        一个用于Java虚拟机的MemoryMXBean对象。
      • getThreadMXBean

        public static ThreadMXBean getThreadMXBean​()
        返回Java虚拟机的线程系统的托管bean。
        结果
        一个用于Java虚拟机的ThreadMXBean对象。
      • getRuntimeMXBean

        public static RuntimeMXBean getRuntimeMXBean​()
        返回Java虚拟机的运行时系统的托管bean。
        结果
        一个用于Java虚拟机的RuntimeMXBean对象。
      • getCompilationMXBean

        public static CompilationMXBean getCompilationMXBean​()
        返回Java虚拟机编译系统的受管Bean。 如果Java虚拟机没有编译系统,此方法返回null
        结果
        一个用于Java虚拟机的CompilationMXBean对象,如果Java虚拟机没有编译系统, null
      • getOperatingSystemMXBean

        public static OperatingSystemMXBean getOperatingSystemMXBean​()
        返回运行Java虚拟机的操作系统的托管bean。
        结果
        一个用于Java虚拟机的OperatingSystemMXBean对象。
      • getMemoryPoolMXBeans

        public static List<MemoryPoolMXBean> getMemoryPoolMXBeans​()
        返回Java虚拟机中的MemoryPoolMXBean对象的列表。 Java虚拟机可以有一个或多个内存池。 它可能会在执行期间添加或删除内存池。
        结果
        一个 MemoryPoolMXBean对象的列表。
      • getMemoryManagerMXBeans

        public static List<MemoryManagerMXBean> getMemoryManagerMXBeans​()
        返回Java虚拟机中的MemoryManagerMXBean对象的列表。 Java虚拟机可以有一个或多个内存管理器。 它可能会在执行期间添加或删除内存管理器。
        结果
        一个 MemoryManagerMXBean对象的列表。
      • getGarbageCollectorMXBeans

        public static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans​()
        返回Java虚拟机中的GarbageCollectorMXBean对象的列表。 Java虚拟机可能具有一个或多个GarbageCollectorMXBean对象。 它可能在执行期间添加或删除GarbageCollectorMXBean
        结果
        GarbageCollectorMXBean对象的列表。
      • getPlatformMBeanServer

        public static MBeanServer getPlatformMBeanServer​()
        返回平台MBeanServer 在第一次调用此方法时,首先通过调用270535983103959方法创建平台MBeanServer ,并在其平台MBeanServer注册了每个平台MXBean MBeanServer及其ObjectName 此方法在后续调用中将简单地返回最初创建的平台MBeanServer

        动态创建和销毁的MXBeans (例如,内存poolsmanagers )将自动注册并注销到平台MBeanServer

        如果设置了系统属性javax.management.builder.initial ,则平台MBeanServer创建将由指定的MBeanServerBuilder完成

        建议该平台MBeanServer也可用于注册除平台MXBeans之外的其他应用程序托管bean。 这将允许所有MBean通过相同的MBeanServer ,从而允许更容易的网络发布和发现。 应避免与平台MXBeans的名称冲突。

        结果
        平台MBeanServer ; 平台MBeanServer在第一次调用此方法时被注册到平台MBeanServer中。
        异常
        SecurityException - 如果有安全管理员,并且呼叫者没有 MBeanServerFactory.createMBeanServer()要求的权限。
        另请参见:
        MBeanServerFactoryMBeanServerFactory.createMBeanServer()
      • newPlatformMXBeanProxy

        public static <T> T newPlatformMXBeanProxy​(MBeanServerConnection connection,
                                                   String mxbeanName,
                                                   Class<T> mxbeanInterface)
                                            throws IOException
        返回给定的平台MXBean接口的代理MXBean name转发其方法调用通过给定MBeanServerConnection

        此方法相当于:

        Proxy.newProxyInstance (mxbeanInterface.getClassLoader(), new Class[] { mxbeanInterface }, handler)
        其中handler是一个InvocationHandler ,调用MXBean接口的方法调用。 handler将MXBean数据类型的输入参数转换为映射的打开类型,然后转发到MBeanServer ,并将来自MXBean方法调用的返回值通过MBeanServer从打开类型转换为在MXBean接口中声明的相应返回类型。

        如果MXBean是通知发布者(即实现NotificationEmitter ),则此代理将实现mxbeanInterfaceNotificationEmitter

        笔记:

        1. 使用MXBean代理可以方便地远程访问正在运行的虚拟机的MXBean平台。 对MXBean代理的所有方法调用将转发到MBeanServerConnection ,当连接器服务器发生通信问题时,可能会抛出IOException 如果抛出, IOException将被包装在UndeclaredThrowableException 使用代理远程访问平台UndeclaredThrowableException的应用程序应准备捕获UndeclaredThrowableException并处理其cause ,就像该原因是由MBeanServerConnection接口抛出的。
        2. 当客户端应用程序被设计为远程访问版本与应用程序运行版本不同的正在运行的虚拟机的MXBeans时 ,应准备捕获InvalidObjectException ,当MXBean代理接收到枚举常量的名称时,在客户端应用程序中加载的枚举类中缺少。 如果抛出, InvalidObjectException将被包装在UndeclaredThrowableException
        3. MBeanServerInvocationHandler或其newProxyInstance方法无法用于为平台MXBean创建代理。 MBeanServerInvocationHandler创建的代理对象不处理MBeanServerInvocationHandler中描述的平台MXBeans的属性
        参数类型
        T - 一个 mxbeanInterface类型的参数
        参数
        connection - 要转发的 MBeanServerConnection
        mxbeanName - 要转发到connection内的平台MXBean的名称。 mxbeanName必须格式为ObjectName
        mxbeanInterface - 要由代理实现的MXBean接口。
        结果
        给定的 MXBean name的平台MXBean接口的代理,通过给定的 MBeanServerConnectionnull转发其方法调用(如果不存在)。
        异常
        IllegalArgumentException - 如果
        • mxbeanName不具有有效的ObjectName格式,或
        • connection命名的MXBean不是由平台提供的MXBean,或者
        • 该名称的MXBean未注册在MBeanServerConnection
        • 命名的MXBean不是给定的mxbeanInterface一个实例
        IOException - 访问 MBeanServerConnection时是否发生通信问题。
      • getPlatformMXBean

        public static <T extends PlatformManagedObject> T getPlatformMXBean​(Class<T> mxbeanInterface)
        返回实现给定的mxbeanInterface的平台MXBean,它被指定为在Java虚拟机中具有一个实例。 如果Java虚拟机中没有实现管理接口,则此方法可能返回null (例如,没有编译系统的Java虚拟机不实现CompilationMXBean ); 否则,此方法相当于调用:
          getPlatformMXBeans(mxbeanInterface).get(0); 
        参数类型
        T - 一个 mxbeanInterface类型的参数
        参数
        mxbeanInterface - 如果实现了Java虚拟机中具有一个实例的平台MXBean的管理界面。
        结果
        实现 mxbeanInterface的平台MXBean,如果不存在, null
        异常
        IllegalArgumentException - 如果 mxbeanInterface不是一个平台管理界面或不是一个单一平台MXBean。
        从以下版本开始:
        1.7
      • getPlatformMXBeans

        public static <T extends PlatformManagedObjectList<T> getPlatformMXBeans​(Class<T> mxbeanInterface)
        返回在Java虚拟机中实现给定的mxbeanInterface的平台mxbeanInterface的列表。 返回的列表可能包含零个,一个或多个实例。 在给定的管理界面的规范中定义了返回列表中的实例数。 订单未定义,并且不保证返回的列表与以前的调用的顺序相同。
        参数类型
        T - 一个 mxbeanInterface类型的参数
        参数
        mxbeanInterface - 平台MXBean的管理界面
        结果
        实现 mxbeanInterface的平台 mxbeanInterface列表。
        异常
        IllegalArgumentException - 如果 mxbeanInterface不是平台管理界面。
        从以下版本开始:
        1.7
      • getPlatformMXBean

        public static <T extends PlatformManagedObject> T getPlatformMXBean​(MBeanServerConnection connection,
                                                                            Class<T> mxbeanInterface)
                                                                     throws IOException
        返回mxbeanInterface的平台MXBean代理,该代理被指定为在Java虚拟机中具有一个实例,代理将通过给定的MBeanServerConnection转发方法调用。 如果在被监视的Java虚拟机中未实现管理接口,则此方法可能返回null (例如,没有编译系统的Java虚拟机不实现CompilationMXBean ); 否则,此方法相当于调用:
          getPlatformMXBeans(connection, mxbeanInterface).get(0); 
        参数类型
        T - 一个 mxbeanInterface类型的参数
        参数
        connection - 要转发的 MBeanServerConnection
        mxbeanInterface - 如果已实施,将监视Java虚拟机中的一个实例的平台MXBean的管理界面。
        结果
        平台MXBean代理通过给定的 MBeanServerConnectionnull转发 mxbeanInterface的方法调用,如果不存在的话。
        异常
        IllegalArgumentException - 如果 mxbeanInterface不是一个平台管理界面或不是一个单一平台的MXBean。
        IOException - 访问 MBeanServerConnection时是否发生通信问题。
        从以下版本开始:
        1.7
        另请参见:
        newPlatformMXBeanProxy(javax.management.MBeanServerConnection, java.lang.String, java.lang.Class<T>)
      • getPlatformMXBeans

        public static <T extends PlatformManagedObjectList<T> getPlatformMXBeans​(MBeanServerConnection connection,
                                                                                   Class<T> mxbeanInterface)
                                                                            throws IOException
        返回平台MXBean代理的列表,用于通过给定的MBeanServerConnection转发mxbeanInterface的方法调用。 返回的列表可能包含零个,一个或多个实例。 在给定的管理界面的规范中定义了返回列表中的实例数。 订单未定义,并且不保证返回的列表与以前的调用的顺序相同。
        参数类型
        T - 一个 mxbeanInterface型参数
        参数
        connection - MBeanServerConnection
        mxbeanInterface - 平台MXBean的管理界面
        结果
        通过给定的 MBeanServerConnection转发 mxbeanInterface的方法调用的平台MXBean代理列表。
        异常
        IllegalArgumentException - 如果 mxbeanInterface不是平台管理界面。
        IOException - 如果在访问 MBeanServerConnection时发生通信问题。
        从以下版本开始:
        1.7
        另请参见:
        newPlatformMXBeanProxy(javax.management.MBeanServerConnection, java.lang.String, java.lang.Class<T>)
      • getPlatformManagementInterfaces

        public static Set<Class<? extends PlatformManagedObject>> getPlatformManagementInterfaces​()
        返回Class对象的集合,子界面为PlatformManagedObject ,表示用于监视和管理Java平台的所有管理接口。
        结果
        该组Class对象,子界面PlatformManagedObject表示用于监视和管理Java平台的管理界面。
        从以下版本开始:
        1.7