📄 instrumentation.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.5.0_03) on Wed Nov 02 09:50:12 CST 2005 --><META http-equiv="Content-Type" content="text/html; charset=gb2312"><TITLE>Instrumentation (Java 2 Platform SE 5.0)</TITLE><META NAME="keywords" CONTENT="java.lang.instrument.Instrumentation interface"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){ parent.document.title="Instrumentation (Java 2 Platform SE 5.0)";}</SCRIPT><NOSCRIPT></NOSCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_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> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>类</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Instrumentation.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Standard Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="IllegalClassFormatException.html" title="java.lang.instrument 中的类"><B>上一个类</B></A> <A HREF="UnmodifiableClassException.html" title="java.lang.instrument 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../index.html@java_2Flang_2Finstrument_2FInstrumentation.html" target="_top"><B>框架</B></A> <A HREF="Instrumentation.html" target="_top"><B>无框架</B></A> <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><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 摘要: 嵌套 | 字段 | 构造方法 | <A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息: 字段 | 构造方法 | <A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">java.lang.instrument</FONT><BR>接口 Instrumentation</H2><HR><DL><DT><PRE>public interface <B>Instrumentation</B></DL></PRE><P>此类提供检测 Java 编程语言代码所需的服务。检测是向方法中添加字节码,其目的是获取各种工具所使用的数据。由于更改完全是进行添加,所以这些工具不修改应用程序的状态或行为。此类优秀工具的例子包括镜像代理、分析器、覆盖分析器和事件记录器。 <P>访问 <code>Instrumentation</code> 接口实例的惟一方法是以指示代理类的方式启动 JVM - 请参阅 <A HREF="package-summary.html">包规范</A>。<code>Instrumentation</code> 实例被传递给代理类的 <code>premain</code> 方法。如果某个代理程序获得了 <code>Instrumentation</code> 实例,它便可以在任何时间调用该实例上的方法。<P><P><DL><DT><B>从以下版本开始:</B></DT> <DD>JDK1.5</DD></DL><HR><P><!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>方法摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="Instrumentation.html#addTransformer(java.lang.instrument.ClassFileTransformer)">addTransformer</A></B>(<A HREF="ClassFileTransformer.html" title="java.lang.instrument 中的接口">ClassFileTransformer</A> transformer)</CODE><BR> 注册提供的转换器。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> <A HREF="../Class.html" title="java.lang 中的类">Class</A>[]</CODE></FONT></TD><TD><CODE><B><A HREF="Instrumentation.html#getAllLoadedClasses()">getAllLoadedClasses</A></B>()</CODE><BR> 返回当前由 JVM 加载的所有类的数组。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> <A HREF="../Class.html" title="java.lang 中的类">Class</A>[]</CODE></FONT></TD><TD><CODE><B><A HREF="Instrumentation.html#getInitiatedClasses(java.lang.ClassLoader)">getInitiatedClasses</A></B>(<A HREF="../ClassLoader.html" title="java.lang 中的类">ClassLoader</A> loader)</CODE><BR> 返回所有类的数组,<code>loader</code> 是类的初始化加载器。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> long</CODE></FONT></TD><TD><CODE><B><A HREF="Instrumentation.html#getObjectSize(java.lang.Object)">getObjectSize</A></B>(<A HREF="../Object.html" title="java.lang 中的类">Object</A> objectToSize)</CODE><BR> 返回指定对象使用的特定于实现的存储量的近似值。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> boolean</CODE></FONT></TD><TD><CODE><B><A HREF="Instrumentation.html#isRedefineClassesSupported()">isRedefineClassesSupported</A></B>()</CODE><BR> 返回当前 JVM 配置是否支持类的重定义。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="Instrumentation.html#redefineClasses(java.lang.instrument.ClassDefinition[])">redefineClasses</A></B>(<A HREF="ClassDefinition.html" title="java.lang.instrument 中的类">ClassDefinition</A>[] definitions)</CODE><BR> 使用提供的类文件重定义提供的类集。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> boolean</CODE></FONT></TD><TD><CODE><B><A HREF="Instrumentation.html#removeTransformer(java.lang.instrument.ClassFileTransformer)">removeTransformer</A></B>(<A HREF="ClassFileTransformer.html" title="java.lang.instrument 中的接口">ClassFileTransformer</A> transformer)</CODE><BR> 注销提供的转换器。</TD></TR></TABLE> <P><!-- ============ METHOD DETAIL ========== --><A NAME="method_detail"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"><B>方法详细信息</B></FONT></TH></TR></TABLE><A NAME="addTransformer(java.lang.instrument.ClassFileTransformer)"><!-- --></A><H3>addTransformer</H3><PRE>void <B>addTransformer</B>(<A HREF="ClassFileTransformer.html" title="java.lang.instrument 中的接口">ClassFileTransformer</A> transformer)</PRE><DL><DD>注册提供的转换器。以后的所有类定义都可以通过转换器看到,但所有已注册的转换器所依赖的类定义除外。如果注册了多个转换器,那么会按添加的顺序调用它们。如果转换器在执行期间抛出异常,则 JVM 仍将按顺序调用其他已注册的转换器。可以多次添加同一转换器。在任何外部 JVMTI ClassFileLoadHookAll 事件监听器看到类文件之前,用 <code>addTransformer</code> 注册的所有转换器始终可以看到类文件。 <P>此方法旨在用于检测,如<A HREF="Instrumentation.html" title="java.lang.instrument 中的接口">类规范</A>中所述。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -