entryloggingagent.java
来自「经典教材:java核心技术卷1、卷2的所有源代码」· Java 代码 · 共 41 行
JAVA
41 行
import java.lang.instrument.*;import java.io.*;import java.security.*;import org.apache.bcel.classfile.*;import org.apache.bcel.generic.*;public class EntryLoggingAgent{ public static void premain(final String arg, Instrumentation instr) { System.out.println(instr); instr.addTransformer(new ClassFileTransformer() { public byte[] transform(ClassLoader loader, String className, Class cl, ProtectionDomain pd, byte[] data) { if (!className.equals(arg)) return null; try { Attribute.addAttributeReader("RuntimeVisibleAnnotations", new AnnotationsAttributeReader()); ClassParser parser = new ClassParser( new ByteArrayInputStream(data), className + ".java"); JavaClass jc = parser.parse(); ClassGen cg = new ClassGen(jc); EntryLogger el = new EntryLogger(cg); el.convert(); return cg.getJavaClass().getBytes(); } catch (Exception e) { e.printStackTrace(); return null; } } }); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?