升级JDK版本注意事项

本文介绍了从JDK1.7升级到JDK1.8的完整步骤,包括考虑升级原因、版权问题、代码及打包变更、部署调整和系统测试。在升级过程中,需要注意maven配置、IDE环境、服务器JDK版本以及JVM启动参数的修改,并通过javap和lsof命令验证升级效果。

@Author Frank
@Date 2019-07-26

说明


JDK版本升级是Java开发人员一定会遇到的事情,为了保证生产环境的稳定,JDK升级需要多方面考虑,笔者从自身主导的多个系统的JDK升级情况出发,介绍下如何进行JDK升级。

环境:JDK1.7升级至JDK1.8;maven项目管理;Linux系统

步骤


1、思考为什么要升级JDK
2、目标版本的商业版权问题
3、项目代码变更
4、项目打包变更
5、项目部署变更
6、系统测试

笔者以实际项目为例,详细说明升级步骤
1、为什么要升级JDK --- 需要你自己回答
2、目标版本的商业版权问题 --- 我们知道JDK已经开始进行商业授权,因此升级前需查看授权问题。
3、项目代码变更
  1)项目采用maven管理,编译使用的是maven-compiler-plugin插件,需要将其中的编译环境配置设置为1.8
  2)本地调试时需要更改IDE的编译环境、JRE运行时环境为1.8
4、项目打包变更
  1)打包由CMO负责,有专门的打包服务器,需要通知CMO更换服务器JDK版本
5、项目部署变更
  1)JDK更换为1.8
  2)JVM启动脚本参数调整,适配1.8(比如1.8中使用元空间代替之前的永久代)
6、系统测试
  1)版本包完成后,检查class文件的编译版本号是否是目标编译环境版本,比如,笔者的是1.8,其对应的主版本号是52
    检查方法:挑选class文件(比如ABC.class),进入目录中,运行命令 javap -verbose ABC.class | grep "major version",会输出编译代码使用的编译环境版本,笔者的是1.8,因此输出 major version: 52
    JDK版本与编译代码对应关系见附属信息。
  2)启动应用后,检查应用使用的JDK版本,使用命令 lsof -p 应用进程号 | grep jdk 进行确认
  3)全量测试,检查jar包冲突等问题(有些冲突在启动时可发现、有些只有在访问具体功能时加载到具体类时才会体现,因此需要全量测试)
    
 

附属


1、JDK版本与编译编号对应关系 
   Java SE 14 = 58 ,
   Java SE 13 = 57 ,
   Java SE 12 = 56 ,
   Java SE 11 = 55 ,
   Java SE 10 = 54 ,
   Java SE 9 = 53 ,
   Java SE 8 = 52 ,
   Java SE 7 = 51 ,
   Java SE 6.0 = 50 ,
   Java SE 5.0 = 49 ,
   JDK 1.4 = 48 ,
   JDK 1.3 = 47 ,
   JDK 1.2 = 46 ,
   JDK 1.1 = 45 .
或查看此贴  https://en.wikipedia.org/wiki/Java_class_file

注意:个人原创,转载请说明出处

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑看人生三百年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值