如何与代理连续跟踪课程?

时间:2019-05-20 01:51:24

标签: javaagents

我需要在执行X时查找正在加载的类,但是该类在启动时正在加载。根据一个教程,当我的ClassLogger函数结束但那没有发生时,我应该使用与转换后的类有关的信息来创建一个新的类文件。

我想要的是一个无休止的循环,当我在程序中执行一个动作时,即使为了进行查找而使用我要查找的类进行了转换,我也得到了一个智能的类名。

import java.lang.instrument.IllegalClassFormatException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.ProtectionDomain;

public class ClassLogger implements ClassFileTransformer {
      @Override
      public byte[] transform(ClassLoader loader,
                              String className,
                              Class<?> classBeingRedefined,
                              ProtectionDomain protectionDomain,
                              byte[] classfileBuffer) throws IllegalClassFormatException {
        try {
          Path path = Paths.get("classes/" + className + ".class");
          //System.out.println(className);
          System.out.println(classfileBuffer);

          //Files.write(path, classfileBuffer);

        } catch (Throwable ignored) { // ignored, don’t do this at home kids
        } finally { return classfileBuffer; }
      }
    } 

0 个答案:

没有答案