我将如何解析Java类文件常量池?

问题描述 投票:3回答:1

根据https://en.wikipedia.org/wiki/Java_class_file#General_layout-类文件的Java常量池从文件开始10个字节。

到目前为止,我已经能够解析之前的所有内容(可以魔术地检查它是否是一个类文件,主要/次要版本,常量池大小),但是我仍然不完全了解如何解析常量池。像,是否有用于指定方法ref和其他内容的操作码?

在用十六进制表示文本之前,有什么方法可以引用每个十六进制值,以找出以下值是什么?

我应该通过用NOP(0x00)分割每组条目,然后解析不是文本值的每个字节来开始吗?

例如,如何确定这些值分别代表什么?enter image description here

java bytecode pool
1个回答
5
投票

与类文件唯一相关的文档是The Java® Virtual Machine Specification,尤其是Chapter 4. The class File Format,如果要解析的常量池之外的内容,则是Chapter 6. The Java Virtual Machine Instruction Set

© www.soinside.com 2019 - 2024. All rights reserved.