首页 > 解决方案 > jvm分析器中的方法参数(类名和方法名)

问题描述

我正在创建一个 java 代理来捕获方法名称和类名,但没有得到解决方法。我必须制作一个该代理的罐子并插入一些示例项目以检查捕获的数据。

标签: javajvm

解决方案


我有一些建议,不知道对你有没有帮助Instrumentation API。使用JVM支持的捕获JVM加载的类很简单。首先,创建一个实现ClassFileTransformer接口的类并覆盖唯一的方法transform,方法的第二个参数是类JVM加载的类名,name的格式如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;
    }

推荐阅读