大佬教程收集整理的这篇文章主要介绍了如何使用 javap 反汇编所有代码?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想查看带有 javap -c
的 Class 文件的字节码,但它似乎无法分解我的所有代码。这是Foobar.java
:
class Foobar {
public static voID main(String[] args) {
if (args[0].equals("foo")) {
System.out.println("bar");
} else {
notFoo();
}
}
private static voID notFoo() {
System.out.println("not Foo");
}
}
使用 javac Foobar.java
编译。然后我尝试用 javap -c Foobar.class
反汇编它,输出:
class Foobar {
Foobar();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static voID main(java.lang.String[]);
Code:
0: aload_0
1: iconst_0
2: aaload
3: ldc #2 // String foo
5: invokevirtual #3 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
8: ifeq 22
11: getstatic #4 // FIEld java/lang/System.out:Ljava/io/PrintStream;
14: ldc #5 // String bar
16: invokevirtual #6 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
19: goto 25
22: invokestatic #7 // Method notFoo:()V
25: return
}
如您所见,这似乎只是反汇编了 @H_561_3@main 方法,并没有向我展示反汇编的 notFoo()
方法。
我如何拆卸所有东西?
javap
默认只显示公共方法。
传递 -p
参数以查看所有内容。
以上是大佬教程为你收集整理的如何使用 javap 反汇编所有代码?全部内容,希望文章能够帮你解决如何使用 javap 反汇编所有代码?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。