相关疑难解决方法(0)

为什么JSR/RET不推荐使用Java字节码?

有谁知道为什么在Java 6中不推荐使用JSR/RET字节码对?

我在网上发现的唯一有意义的解释是,他们通过运行时进行代码分析更难以执行.有谁知道另一个原因?

java jvm bytecode opcode deprecated

11
推荐指数
1
解决办法
2861
查看次数

javap可以显示与字节码混合的原始源代码行,如objdump -S吗?

我知道这个调试信息在编译时包含在.class文件中:

javac -g Main.java
Run Code Online (Sandbox Code Playgroud)

并且可以从以下LineNumberTable:部分手动观察:

javap -c -constants -private -verbose '$<' > '$@'
Run Code Online (Sandbox Code Playgroud)

我想要的是javap在字节码的中间显示源.

样本输入:

public class New {
    public static void main(String[] args) {
        System.out.println(new Integer(1));
    }
}
Run Code Online (Sandbox Code Playgroud)

实际javap产量:

   0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
   3: new           #3                  // class java/lang/Integer
   6: dup
   7: iconst_1
   8: invokespecial #4                  // Method java/lang/Integer."<init>":(I)V
  11: invokevirtual #5                  // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
  14: return
LineNumberTable:
  line 3: 0
  line 4: 14
Run Code Online (Sandbox Code Playgroud)

期望的javap输出:

       System.out.println(new Integer(1));
   0: getstatic     #2                  // …
Run Code Online (Sandbox Code Playgroud)

java javap

5
推荐指数
1
解决办法
760
查看次数

标签 统计

java ×2

bytecode ×1

deprecated ×1

javap ×1

jvm ×1

opcode ×1