Java class文件查看对应的JDK版本

问题:

在Java应用项目中,有时会发现编译好的类或包拿到项目现场环境部署时会报错,大概意思就是用高版本JDK编译出来的包,在低版本的JDK中不能运行。于是只好重新编译为兼容低版本JDK的class,但怎样确认编译出的class(比如JDK1.8编译)是不是指定的版本(运行环境JDK1.7)呢?

解决:

通常有2个办法,一是使用ultraedit等工具查看class文件16进制编码,前面8个字节CA FE BA BE 是固定的,之后4个字节00 00 是次版本号,次版本号后面的4个字节00 33  是jdk的版本号;二是使用javap工具查看JDK编码。在获取JDK编码后,即可查询下表得知对应的JDK版本号。

(1)通过文本编辑工具查看

这里看到的major version是16进制。

(2)通过javap工具查看

这里major version是十进制。

 

 

版本号对应十进制jdk版本号
2E46jdk1.2
2F47jdk1.3
3048jdk1.4
3149jdk1.5
3250jdk1.6
3351jdk1.7
3452jdk1.8

 附:

高版本JDK编译出兼容低版本JDK的类:

例如使用JDK1.8版本,编译出1.7版本的class:

javac –source 1.7 –target 1.7 Xxx.java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值