问题:

在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版本号
2E 46 jdk1.2
2F 47 jdk1.3
30 48 jdk1.4
31 49 jdk1.5
32 50 jdk1.6
33 51 jdk1.7
34 52 jdk1.8

附:

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

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

javac –source 1.7 –target 1.7 Xxx.java

Java class文件查看对应的JDK版本相关推荐

  1. 查看环境变量jdk版本、文件夹中的jdk版本

    文章目录 一.查看环境变量的 jdk 版本 二.查看文件夹中的 jdk 版本 方法一 方法二 一.查看环境变量的 jdk 版本 win+R 进入运行界面,输入cmd 在cmd窗口输入:java -ve ...

  2. 相同java代码,编译生成class文件不同的原因-JDK版本不同(大版本相同,小版本不同)

    ■前言 使用Jenkins自动打包,生成jar文件 检证时,和本地手动执行mvn命令生成的jar比较 使用winMerage进行比较. ■现象 发现,除了pom.properties文件的改行code ...

  3. 确定Java开发中.jar包的JDK版本

    1.查看.jar包中的META-INF\MANIFEST.MF 使用winrar等压缩软件打开.jar包,查看META-INF\MANIFEST.MF中的内容,Build-Jdk属性就是JDK的版本, ...

  4. Eclipse中如何查看使用的JDK版本?

    有两种方法可以查看eclipse中jdk的版本: 第一种方法: 点击开始--运行--输入cmd--点击确定--在cmd命令行窗口中输入java -version,就可以显示出当前在使用的jdk的版本号 ...

  5. 如何查看本机JDK版本-windows系统

    如何查看本机的JDK版本 Step1:Windows+R打开CMD窗口 Step2:在CMD窗口中输入java -version 此处可以看到,我本机的版本是1.8.0

  6. Java学习之路——在更换JDK版本之后,eclipse打不开报错提示

    报错信息如下图所示: 在本地电脑中更换JDK版本,或重新安装JDK到其他路径之后,重新配置环境变量后,经过cmd检查无误,再打开eclipse显示报错. 出现原因:虽然本地电脑JDK版本改变或安装路径 ...

  7. 紧急:Spring框架被爆出存在0day级别远程命令执行漏洞。漏洞危害程度不亚于log4j漏洞根据目前掌握的信息,JDK版本在9及以上的Spring框架均受影响。该漏洞目前无官方修复补丁

    Spring框架被爆出存在0day级别远程命令执行漏洞.漏洞危害程度不亚于log4j漏洞根据目前掌握的信息,JDK版本在9及以上的Spring框架均受影响. 漏洞信息和漏洞影响排查方法如下: 漏洞名称 ...

  8. java怎么查看jdk版本_java版本和jdk版本必须一样

    1.首先需要检查你的系统是否安装了java环境,2.在"开始"==>"运行"==>输入"cmd"弹出命令窗口,在命令窗口中输入java或者javac ...

  9. eclipse查java版本_Eclipse中如何查看当前使用的JDK版本?

    1.Ecilpse其实是自带JDK的 其实你安装完成之后默认使用的就是自带的JDK 自己另外安装jdk是方便使用 在控制台下~~~ 2.比如你安装的jdk的目录在C:\Program Files\Ja ...

最新文章

  1. linux虚拟网络设备--eth, tap/tun, veth-pair(九)
  2. wmic 获取运行内存大小
  3. LVS(10)——实现多集群功能
  4. 聊聊互联网秋招总结 经验分享
  5. Python 使用pdfplumber 提取PDF页面表格的内容
  6. maven clean警告:The requested profile “pom.xml“ could not be activated because it does not exist
  7. javaweb学习总结(四十六)——Filter(过滤器)常见应用
  8. 新鲜出炉!腾讯大数据分析的真实面经,这几个问题把我问懵了
  9. BZOJ 1933 Bookcase 书柜的尺寸
  10. 论文写作——latex三线表tabular*文本居中与正文两端对齐、标题加黑
  11. MAC欺骗-通过思科模拟器实现
  12. cin gt gt n是c语言中的什么,c++中cinna是什么意思
  13. Matplotlib 2 |折线图| 柱状图| 堆叠图| 面积图| 填图| 饼图| 直方图| 散点图| 极坐标| 图箱型图
  14. 2005高中数学联赛第15题补充解答
  15. 最全的Android单元测试教程
  16. 计算机硬件软件的学习
  17. 在linux系统里面进行rar文件的解锁
  18. 将一个整数分解为质数的乘积
  19. 黑客发展历史和大事记
  20. 已知正整数n是两个不同的质数的乘积,试求出较大的那个质数

热门文章

  1. java错误无法读取配置文件_解决Java Web项目无法读取配置文件问题
  2. CVPR2014结果出来了,小伙伴们赶紧来啊~~~~
  3. digital_logic@一位全加器的真值表@画卡诺图@输出逻辑函数表达式
  4. 设计模式之----匹配器处理器模式(Matcher-Handler)的理解
  5. Allwinner T3 汽车级处理器为工业级 SoM 提供动力
  6. 关于旁路由设置后,主路由WIFI无法上网的问题
  7. 华为wlan旁挂三层组网隧道转发
  8. Redis项目应用场景与实例(三):队列(List)
  9. Unity3D脚本手册
  10. dnf mysql数据库密码_CentOS7使用dnf安装mysql的方法