Class 复制创建无效
Class creating by copying doesnt work
我遵循 ASM 4.0 手册中的示例,在解释访问者的部分中有一个使用类似于以下代码复制 class 的示例:
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
不同的是,在书中他们将输入数据定义为字节数组,但我不知道如何将 class 读取为字节数组,而是使用我在网上找到的示例来读取 class作为输入流。
我使用以下代码保存 class:
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 的文件。生成的 class 必须与 .class
之前的文件名同名
我遵循 ASM 4.0 手册中的示例,在解释访问者的部分中有一个使用类似于以下代码复制 class 的示例:
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
不同的是,在书中他们将输入数据定义为字节数组,但我不知道如何将 class 读取为字节数组,而是使用我在网上找到的示例来读取 class作为输入流。
我使用以下代码保存 class:
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 的文件。生成的 class 必须与 .class