package-summary.html

来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 443 行 · 第 1/2 页

HTML
443
字号
</tr><tr><td> <tt><A HREF="MemoryManagerMXBean.html" title="java.lang.management 中的接口"><CODE>MemoryManagerMXBean</CODE></A></tt> </td><td> Java 虚拟机中的内存管理器。</td></tr><tr><td> <tt><A HREF="MemoryPoolMXBean.html" title="java.lang.management 中的接口"><CODE>MemoryPoolMXBean</CODE></A></tt> </td><td> Java 虚拟机中的内存池。</td></tr></table></blockquote><p>平台 MXBean 是一种<i>托管 Bean</i>,它定义平台一个组件的管理接口,在 <a href="java.lang.management.ManagementFactory.html#MXBean">ManagementFactory</a> 类中定义。<p>应用程序可以采用以下方式监视 Java 虚拟机的监测和管理特定的特征:<ul><li><i>直接访问 MXBean 接口</i>    <ol type="a">    <li>通过静态工厂方法获得 MXBean 实例,从本地访问正在运行的虚拟机的 MXBean 接口。</li>    <li>构造 MXBean 代理实例,通过调用 <A HREF="ManagementFactory.html#newPlatformMXBeanProxy(javax.management.MBeanServerConnection, java.lang.String, java.lang.Class)"><CODE>ManagementFactory.newPlatformMXBeanProxy</CODE></A> 将方法调用转发到给定的 <CODE>MBeanServer</CODE>。代理通常构造为远程访问另一个正在运行的虚拟机的 MXBean。</li>    </ol></li><li><i>通过 <CODE>MBeanServer</CODE> 接口间接访问</i>    <ol type="a">    <li>通过 <A HREF="ManagementFactory.html#getPlatformMBeanServer()"><CODE>platform MBeanServer</CODE></A> 从本地访问 MXBean 或通过特定的 <tt>MBeanServerConnection</tt> 远程访问 MXBean。MXBean 的属性和操作仅使用 <em>JMX 开放类型</em>,包括在 <CODE>OpenType</CODE> 中的定义的基本数据类型、<CODE>CompositeData</CODE> 和 <CODE>TabularData</CODE>。       </li>    </ol></li></ul>以下给出了一些采用不同方式访问 MXBean 的<a href="#examples">示例</a>。<h4>ManagementFactory</h4><A HREF="ManagementFactory.html" title="java.lang.management 中的类"><CODE>ManagementFactory</CODE></A> 类是 Java 平台的管理工厂类。此类提供了一组静态工厂方法,用以获得 Java 平台的 MXBean,从而允许应用程序直接访问 MXBean。<p>使用 <A HREF="ManagementFactory.html#getPlatformMBeanServer()"><CODE>getPlatformMBeanServer</CODE></A> 方法可以访问<em>平台 MBeanServer</em>。第一次调用此方法时,它将创建平台 MBeanServer 并注册所有的平台 MXBean,包括在其他包(如 <A HREF="../../util/logging/LoggingMXBean.html" title="java.util.logging 中的接口"><CODE>LoggingMXBean</CODE></A>)中定义的平台 MXBean。每个平台 MXBean 均使用用于构造 <CODE>ObjectName</CODE> 的 <A HREF="ManagementFactory.html" title="java.lang.management 中的类"><CODE>ManagementFactory</CODE></A> 类中定义的惟一名称进行注册。这是惟一可以由在相同 Java 虚拟机内运行的不同托管组件共享的 MBeanServer。 <h4>互操作性</h4>管理应用程序和正在运行的虚拟机的平台 MBeanServer 可以进行互操作,而无需平台 MXBean 接口使用的类。JMX 连接器服务器和连接器客户端之间传送的数据类型为 JMX <CODE>开放类型</CODE>,这就允许跨版本的互操作。<p>当通过 MBeanServer 接口进行访问时,MXBean 接口使用的数据类型将映射为开放类型。数据类型映射在 <A HREF="ManagementFactory.html" title="java.lang.management 中的类"><CODE>ManagementFactory</CODE></A> 类中指定。<h4><a name="examples">访问 MXBean 的方法</a></h4>有三种访问管理接口的方法。 <p><ol><li>直接调用同一 Java 虚拟机内的 MXBean 中的方法。<blockquote><pre>   RuntimeMXBean mxbean = ManagementFactory.getRuntimeMXBean();   // Get the standard attribute &quot;VmVendor&quot;   String vendor = mxbean.getVmVendor();</pre></blockquote></li><li>通过一个连接到正在运行的虚拟机的<tt>平台 MBeanServer</tt> 的 <tt>MBeanServerConnection</tt>。</li><blockquote><pre>   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 &quot;VmVendor&quot;       String vendor = (String) mbs.getAttribute(oname, &quot;VmVendor&quot;);   } catch (....) {       // Catch the exceptions thrown by ObjectName constructor       // and MBeanServer.getAttribute method       ...   }</pre></blockquote><li>使用 MXBean 代理。</li><blockquote><pre>   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.newPlatformMXBeanProxy(mbs,                                                ManagementFactory.RUNTIME_MXBEAN_NAME,                                                RuntimeMXBean.class);   // Get standard attribute "VmVendor"   String vendor = proxy.getVmVendor();</pre></blockquote></ol><h4><a name="extension">平台扩展</a></h4>Java 虚拟机实现通过定义与平台有关的接口(它扩展了标准管理接口,以包括特定于平台的规格和管理操作),可以将其平台扩展添加到管理接口。<tt>ManagementFactory</tt> 类中的静态工厂方法将返回具有平台扩展的 MBean。<p>建议使用特定于供应商的前缀(如供应商的名称)对特定于平台的属性进行命名,以避免标准管理接口的未来扩展与平台扩展之间的属性名称冲突。如果标准管理接口的未来扩展为管理接口定义了一个新属性,而该属性名称碰巧与某个特定于供应商的属性的名称相同,则必须修改访问该特定于供应商的属性的应用程序,以处理版本控制和兼容性问题。<p>以下示例演示了如何访问 Sun 的 <tt>RuntimeMXBean</tt> 实现中的特定于平台的属性。<p>1) 直接访问特定于 Sun 的 MXBean 接口<blockquote><pre>   com.sun.management.RuntimeMXBean mxbean =        (com.sun.management.RuntimeMXBean) ManagementFactory.getRuntimeMXBean();   // Get the standard attribute "VmVendor"   String vendor = mxbean.getVmVendor();   // Get the platform-specific attribute "Bar"   BarType bar = mxbean.getBar();</pre></blockquote><p>2) 通过 <tt>MBeanServer</tt> 访问特定于 Sun 的 MXBean 接口<blockquote><pre>   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");       // Check if this MXBean contains Sun's extension       if (mbs.isInstanceOf(oname, "com.sun.management.RuntimeMXBean")) {           // Get platform-specific attribute &quot;Bar&quot;           BarType bar = (String) mbs.getAttribute(oname, "Bar");       }   } catch (....) {       // Catch the exceptions thrown by ObjectName constructor       // and MBeanServer methods       ...   }</pre></blockquote><p> 除非另有说明,向此包的任何类或接口中的构造方法或方法传递 <tt>null</tt> 变量,将会抛出 <A HREF="../NullPointerException.html" title="java.lang 中的类"><CODE>NullPointerException</CODE></A>。<P><P><DL><DT><B>从以下版本开始:</B></DT>  <DD>1.5</DD><DT><B>另请参见:</B><DD><a href="../../../javax/management/package-summary.html">JMX Specification.</a></DL><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">  <TR ALIGN="center" VALIGN="top">  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>软件包</B></FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">类</FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A>&nbsp;</TD>  </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup>&nbsp;2&nbsp;Platform<br>Standard&nbsp;Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;<A HREF="../instrument/package-summary.html"><B>上一个软件包</B></A>&nbsp;&nbsp;<A HREF="../ref/package-summary.html"><B>下一个软件包</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">  <A HREF="../../../index.html@java_2Flang_2Fmanagement_2Fpackage-summary.html" target="_top"><B>框架</B></A>  &nbsp;&nbsp;<A HREF="package-summary.html" target="_top"><B>无框架</B></A>  &nbsp;&nbsp;<SCRIPT type="text/javascript">  <!--  if(window==top) {    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>所有类</B></A>');  }  //--></SCRIPT><NOSCRIPT>  <A HREF="../../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR><font size="-1"><a href="../../../../../../../../../java.sun.com/cgi-bin/bugreport.cgi">提交错误或意见</a><br>有关更多的 API 参考资料和开发人员文档,请参阅 <a href="../../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/devdocs-vs-specs.html">Java 2 SDK SE 开发人员文档</a>。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。 <p>版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守<a href="../../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/license.html">许可证条款</a>。另请参阅<a href="../../../../../../../../../java.sun.com/docs/redist.html">文档重新分发政策</a>。</font></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?