jvm profiler中的方法参数(类名和方法名)

时间:2018-12-28 07:20:43

标签: java jvm

我正在创建一个Java代理来捕获方法名和类名,但没有找到方法。我必须制作一个该代理的jar并插入一些示例项目中,以检查捕获的数据。

1 个答案:

答案 0 :(得分:1)

我有一些建议,我不知道它是否对您有帮助。使用JVM支持的Instrumentation API捕获JVM加载的类很容易。首先,创建一个实现ClassFileTransformer接口的类,并覆盖唯一的方法transform,方法的第二个参数是JVM加载的类的类名,名称格式为io/github/YourAgent,因此得到的类名非常直接。其次,该界面还提供了一个操作类字节码的方法,您可以尝试。

    @Override
    public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {
        System.out.println("load class " + className);
        return classfileBuffer;
    }