entryloggingagent.java

来自「关于Java使用的各种小程序,有文件操作」· 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 + -
显示快捷键?