之前的文件名相同
我遵循ASM 4.0手册中的示例,在解释访问器的部分中有一个使用类似于以下代码复制类的示例:
InputStream in=ASMHelloWorld.class.getResourceAsStream("Test.class");
ClassWriter cw = new ClassWriter(0);
ClassReader cr = new ClassReader(in);
cr.accept(cw, 0);
byte[] b2 = cw.toByteArray(); // b2 represents the same class as b1
不同之处在于,在书中他们定义输入数据为字节数组,但我不知道如何读取一个类作为字节数组,而不是我使用了一个例子,我发现在网上读取类作为InputStream。
我使用以下代码保存类: DataOutputStream os = new DataOutputStream(new FileOutputStream("Test2.class"));
os.write(b2);
os.flush();
os.close();
问题是,当我尝试运行Test2时,我得到以下错误:
Error: Could not find or load main class Test2
Test.class和Test2.class的大小相同
在您的副本中,您有Test1.class
文件与Test
类名称。生成的类必须与.class