可能重复:
Is there a java classfile / bytecode editor to edit instructions?
Java源代码被编译成字节码,实际上是在类文件中。是否可以查看已编译类的字节码?
如果有可能,可以编辑吗?
是否有可用的eclipse插件?
答案 0 :(得分:131)
是。您可以使用JDK附带的javap
命令来查看类的字节代码。例如:
javap -c com.mypackage.MyClass
答案 1 :(得分:23)
JDK附带javap,它是一种在类文件中反汇编字节代码的工具。可以在字节代码级别进行编辑。看看BCEL,一个用于读取,操作和编写类文件的java库。
可以在java-net上找到编辑字节代码的工具和库列表。例如JBE,一个Java Byte Code编辑器,甚至还带有GUI。
答案 2 :(得分:16)
查看字节码
忘记javap!我用过的最好的插件是"ASM - Bytecode Outline plugin for Eclipse"
http://asm.ow2.org/eclipse/index.html
来自ASM(字节码操作框架)。
它显示了字节码(您要求的),堆栈元素(jvm样式),以及如何使用asm框架方法生成相同的结果(以生成相同的字节码)。
更好的是,当您选择源代码时,它会这样做。 您不必在bin目录中找到.class文件来检查它的字节码。
要编辑它们
使用代码:
手工:JBE
答案 3 :(得分:2)
根据我的经验,jclasslib是最好的字节码查看器之一。
对于编辑器,有两种类型:字节码操作库和带GUI的编辑器。在SO上几次询问过这个问题,您可以查看答案和提供的链接。
请注意,编辑字节码并不像您想象的那么简单。 JVMS对类文件的处理方式施加了很多限制,并且您的某个编辑很可能会违反其中一个。
检查以下其他问题:
Editing a .class file directly, playing around with opcodes
答案 4 :(得分:0)
尝试使用 - dirtyJOE - Java Overall Editor是一个复杂的编辑器和查看器,用于编译的java二进制文件(.class文件)。