我尝试通过将字节码写入十六进制并将其存储到字符串中,然后将它们转换为字符并使用 java 将它们写入 .class 文件,从而手动将字节写入 .class 文件。我遇到的问题是,用于打印 Hello World 的 .class 文件似乎相当于另一个可以工作的 Hello World .class 文件,但是当我尝试执行生成的类文件时,出现错误 Error: error whileReading Constant Pool for Output .class:#15 处出现意外标签:0。
有什么奇怪的,因为 Hello World 类文件中有效的每个字符都存在于我的类文件中,而我的类文件却没有。
您遇到的错误“读取 Output.class 的常量池时出错:#15: 0 处出现意外标记”表明生成的类文件的常量池可能存在问题。常量池是类文件结构的重要组成部分,包含有关类、方法、字段以及类使用的其他常量的信息。
以下是一些可能导致错误的原因: