【问题标题】:Is it possible to see JVM opcodes from class file? [duplicate]是否可以从类文件中查看 JVM 操作码? [复制]
【发布时间】:2014-08-22 08:02:21
【问题描述】:

这其实不是反编译,我不想看源码,而是想看像invoke some/package/method()V这样的JVM指令。

是否有用于此目的的工具?

【问题讨论】:

标签: java


【解决方案1】:

假设你有一个名为 MyClass.class 的类文件

您可以通过使用 jdk 本身提供的程序,在 java 和 javac 所在的同一 bin 目录中轻松查看构成类文件的 JVM 指令。

 javap -c MyClass.class

上述命令将为您提供您正在寻找的内容。

【讨论】:

  • 这是最好的答案,只要使用内部 JDK 的东西比其他任何东西都优雅得多,因为问题没有指定涉及的 IDE。
【解决方案2】:

我正在为 Eclipse http://andrei.gmxhome.de/bytecode/index.html 使用 Eclipse + Bytecode Outline 插件。这就是字节码的样子

  public static main([Ljava/lang/String;)V throws java/io/IOException 
   L0
    LINENUMBER 11 L0
    INVOKESTATIC test/Test.x ()V
   L1
    LINENUMBER 12 L1
    RETURN
...

【讨论】:

    【解决方案3】:

    试试看:http://set.ee/jbe/

    此工具允许您查看操作码、属性并对其进行编辑。它非常有用,但不适用于 Java 8 lambdas。

    【讨论】:

      猜你喜欢
      • 2011-03-19
      • 2013-05-22
      • 1970-01-01
      • 2021-04-20
      • 2018-11-30
      • 1970-01-01
      • 2012-01-28
      • 2012-02-04
      • 2011-08-29
      相关资源
      最近更新 更多