我最近正在阅读有关字节码分析的内容,我需要以下查询的帮助:
如果我想编写一个Java程序来解析Java字节代码(通过读取类文件)并打印操作码而不使用任何外部库(如ASM)而不使用,我必须查找哪些JDK软件包/ API
javap
命令?
简单来说,有没有可用于反汇编Java字节代码的JDK API?
如果可能的话,是否有人可以共享示例代码片段?
这完全是为了我对字节码上的核心Java API支持的理解,并让我自己知道是否有用于字节码分析的核心Java库。
谢谢。
答案 0 :(得分:3)
JRE中没有用于反汇编字节码的API。通过查看javadoc包树很容易找到,名称已经告诉你里面发现的功能范围。很少甚至是远程相关的,需要详细检查。
请注意,com.sun软件包没有javadoc,这些不被视为JDK的一部分。
但基本上,的所有内容都是。您可以读取文件,也可以根据需要处理它们。还提供有关字节代码和类文件的文档。所以你可以自己写一切。
因此...
我们是否可以编写一个简单的Java程序来反汇编Java Byte Code并打印操作码而不使用任何外部库(如ASM)而不使用javap命令?
是。 (取决于什么符合简单的条件,纯粹的反汇编程序属于边界IMO)。
换句话说,有没有可用于反汇编Java Byte Code的JDK API?
没有