在我的项目包之外的类上使用asm(java字节码)classreader?

时间:2011-02-22 20:41:12

标签: java inputstream instrumentation java-bytecode-asm

我通过输入一个类的路径(比如说“C:\ Temp \ Test.class”)。我想做的是将ClassReader初始化到这个类并使用ClassAdapter开始检测它ClassWriter(我知道如何进行检测)。

我不知道的是 - 我如何将该课程“理解”为班级读者?

我尝试使用构造函数ClassReader(String),但这是徒劳的

谢谢! (抱歉我的英语不好)

1 个答案:

答案 0 :(得分:3)

我不知道你正在使用的图书馆 - 显然是ASM。无论如何,我发现the constructor you're trying to use没有文件名,而是一个类的完全限定名。但是,another constructor需要一个InputStream。因此,您必须能够解决将FileInputStream传递给此构造函数的问题:

ClassReader r = new ClassReader(new FileInputStream(filename));