【发布时间】:2014-08-22 08:02:21
【问题描述】:
这其实不是反编译,我不想看源码,而是想看像invoke some/package/method()V这样的JVM指令。
是否有用于此目的的工具?
【问题讨论】:
-
试试javap
标签: java
这其实不是反编译,我不想看源码,而是想看像invoke some/package/method()V这样的JVM指令。
是否有用于此目的的工具?
【问题讨论】:
标签: java
假设你有一个名为 MyClass.class 的类文件
您可以通过使用 jdk 本身提供的程序,在 java 和 javac 所在的同一 bin 目录中轻松查看构成类文件的 JVM 指令。
javap -c MyClass.class
上述命令将为您提供您正在寻找的内容。
【讨论】:
我正在为 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
...
【讨论】:
此工具允许您查看操作码、属性并对其进行编辑。它非常有用,但不适用于 Java 8 lambdas。
【讨论】: