3

我想以命令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仅在一个或两个类上执行。谢谢你的帮助。

4

0 回答 0