我想以命令javap -c
输出的方式查看 Java 字节码,而不是像“查看字节码插件”那样。有没有办法做到这一点?
示例:此方法
public void increment() {
c++;
}
转换为
public void increment();
Code:
0: aload_0
1: dup
2: getfield #2 // Field c:I
5: iconst_1
6: iadd
7: putfield #2 // Field c:I
10: return
使用该javap -c
命令,但在 IntelliJ 的本机字节码查看器中,它看起来像这样:
// access flags 0x1
public increment()V
L0
LINENUMBER 14 L0
ALOAD 0
DUP
GETFIELD ethz/ch/pp/assignment3/counters/SequentialCounter.c : I
ICONST_1
IADD
PUTFIELD ethz/ch/pp/assignment3/counters/SequentialCounter.c : I
L1
LINENUMBER 15 L1
RETURN
L2
LOCALVARIABLE this Lethz/ch/pp/assignment3/counters/SequentialCounter; L0 L2 0
MAXSTACK = 3
MAXLOCALS = 1
哪个更复杂,更难阅读。我想查看第一个,而不必先编译整个项目并将其与.class
文件混淆,然后javap -c
仅在一个或两个类上执行。谢谢你的帮助。