是否可以查看Java类文件字节码

是否可以查看Java类文件字节码,java,bytecode,Java,Bytecode,我正在用Java进行字节码操作/生成,我只是想知道是否有一种简单的方法可以检查字节码。我不想反编译这个文件,我想看看编译后的字节码。我不需要编辑它。任何这样做的链接或程序都是可以接受的答案。与Oracle的JDK捆绑在一起,提供了.class文件的详细文本转储,以及常量池和所有函数的字节码内容。只需使用-v运行它就可以获得完整的转储。不确定您到底需要什么,但是除了显示字节码的命令行工具之外,您可以查看,而且-它们允许您用java代码解析字节码。既然您希望被引导到一些可以轻松显示字节码的程序,那么

我正在用Java进行字节码操作/生成,我只是想知道是否有一种简单的方法可以检查字节码。我不想反编译这个文件,我想看看编译后的字节码。我不需要编辑它。任何这样做的链接或程序都是可以接受的答案。

与Oracle的JDK捆绑在一起,提供了.class文件的详细文本转储,以及常量池和所有函数的字节码内容。只需使用
-v
运行它就可以获得完整的转储。

不确定您到底需要什么,但是除了显示字节码的命令行工具之外,您可以查看,而且-它们允许您用java代码解析字节码。

既然您希望被引导到一些可以轻松显示字节码的程序,那么我的建议是使用IntelliJ IDEA,因为它内置了查看字节码的支持

下面是一个如何执行此操作的示例(它也可以映射到您选择的一些键):


这非常简单,当然也可以在eclipse或NetBeans中完成。

我一直在开发一种具有彩色编码字节码输出模式(我发现它比javap可读性好得多)的。它还可以输出Java代码或中间的“字节码AST”。

您通常可以直接从IDE中进行输出。也许需要一点插件的帮助。我想
javap
就是你想要的。JDK.try javap-c classfileno附带的一个命令,它不显示所有仅字节码字段和methods@Popgalop
javap-v
显示字节码-请参阅下面的答案。但是我想看看编译器在读取文件时读取的内容,以便我可以创建自己的合成类。@Popgalop编译器读取的内容是实际的字节码,它不是文本格式。我想你可以在一个十六进制编辑器中打开它,用它自己解析,但是如果你想要一个人类可读的转储,
javap-v
是答案。行号在哪里?什么是L0,L1。。意思是???这在Android studio中也可用吗?至少对于JVM的compield类(如本地单元测试等)。@PSIXO我不知道,我只使用IntelliJ as-is。请注意,这需要字节码查看器plugin@voipp
行号10 L2
表示行号10上的代码位于标签
L2
。因此,
L0
L1
等是标签,即程序中的跳转点。字节码中没有函数或循环,只有跳跃(可以是条件的)。因此,整个程序是一堆
,如果这样做的话;如果是那样的话_2