是否可以从类文件中查看JVM操作码?

时间:2014-08-22 08:02:21

标签: java

这实际上不是关于反编译,我不想看到源代码,而是希望看到像invoke some/package/method()V这样的JVM指令。

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

3 个答案:

答案 0 :(得分: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
...

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

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

通过使用jdk本身提供的程序,在java和javac所在的bin目录中,您可以很容易地看到JVM指令构成了您的类文件。

 javap -c MyClass.class

上述命令将为您提供所需的内容。