前言: 用习惯了著名的反编译工具jad的话,如果有的时候单给出class文件,要快速看这个class文件的JDK版本号等,其实不用工具
用习惯了著名的反编译工具jad的话,如果有的时候单给出class文件,要快速看这个class文件的JDK版本号等,其实不用工具,也可以用JDK自带的javap命令进行反编译输出,下面小结其用法:
得到的信息如下:
Compiled from "Test.java"
public class Test extends java.lang.Object
SourceFile: "Test.java"
minor version: 0
major version: 50
Constant pool:
可以看出jdk的版本,这个用在判断某些CLASS的版本是否兼容的时候很有用.
比如某个类:
package test;
public class Test {
int number = 5;
public void sayHello() {
System.out.println("Hello");
}
}
则:
C:\temp\javaptest>javap Test
Compiled from "Test.java"
public class test.Test extends java.lang.Object{
int number;
public test.Test();
public void sayHello();
}
带参数-c:
则可以看到字节码了:
C:\temp\javaptest>javap -c Test
Compiled from "Test.java"
public class test.Test extends java.lang.Object{
int number;
public test.Test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."":()V
4: aload_0
5: iconst_5
6: putfield #2; //Field number:I
9: return
public void sayHello();
Code:
0: getstatic #3; //Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #4; //String Hello
5: invokevirtual #5; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
}
带参数-l: 将显示行号和局部变量表
-public 只显示 public 类及成员。
-protected 只显示 protected 和 public 类及成员。
-package 只显示包、protected 和 public 类及成员。这是缺省设置。
-private 显示所有类和成员。
通过上述介绍,相信大家对Java反编译命令的用法已经有所了解,如果您想了解更多相关知识,不妨来关注一下IT培训网的Java开发工具,里面有更丰富的知识等着大家去学习,希望对大家能够有所帮助。
文章出自:http://qh.itpxw.cn/peixun/software/2022123733.html
文章标题:Java反编译命令的用法
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员
用户级别:10
机构名称:IT培训网
联 系 人:罗老师
联系电话:13783581536
联系手机:13783581536
在线客服:
在 线 QQ:
电子邮件:
网站域名:http://www.itpxw.cn
注册时间:2016-07-18 11:07
最后登录:2024-02-20 13:02
Java定义方法的格式是什么?IT培训网小编来告诉大家。所谓方法...
大家在Java教程中会学到关于Java消息推送的知识,那么,Java消息...
常用的Java日期格式转换有哪些?IT培训网小编来告诉大家。 1...
Java创建对象数组的方法是什么?IT培训网小编来告诉大家。Ja...