网站首页 > java教程 正文
1. java8 升级到JDK11 对系统性能有大幅度提升,尤其是容器化项目
2. 下面以某个项目说明项目改造
2.1 安装软件
2.1.1 Maven (必须3.5.0以上)
下载地址:https://maven.apache.org/download.cgi
2.1.2 Openjdk11
下载地址:https://download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz
2.2 Idea配置
2.2.1 SDKS配置(添加jdk11安装路径)
FILE-project structure
ProjectSetting -project 修改添加
ProjectSetting——modules配置
2.2.2 Maven 配置
修改maven版本 3.6版本
file -settings-buid-build tools -Maven
file -settings-buid-build tools -Maven-importing
修改Maven runner 环境JDK
2.2.3 Java 编译
file -settings-build-compiler-javaCompiler
2.3 项目pom.xml文件修改
pom.xml 新老版本对比
说明:
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
和
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
2个方式都可以,一个是声明时候指定,一个是编译时候指定JDK 版本
2.4 maven 编译打包
完成编译后查看
先找到具体的class文件的位置
用UE 16进制打开ApplicationStart.class
只看第一行:
前面8个字节CA FE BA BE是固定的
随后4个字节00 00是次版本号
再后面的4个字节00 34是JDK的版本号(JDK1.8)
JDK版本号对应关系如下:
37(对应十进制的50):JDK1.11
36(对应十进制的50):JDK1.10
35(对应十进制的50):JDK1.9
34(对应十进制的50):JDK1.8
33(对应十进制的50):JDK1.7
32(对应十进制的50):JDK1.6
编译后的打包是JDK11 编译出来的类。
2.4 jenkins 构建发布改造
jenkins 和普通的项目配置类似,这里面就不在重述,重点介绍和其他项目不一样的地方的配置
2.4.1 jdk 配置
后面的 maven 构建配置和其他项目类似
通过以上步骤完成jenkins构建
2.5 容器启动测试
3. 项目修改运行过程中问题
3.1 sun.misc.BASE64Encoder 引用不兼容属于sunjdk1.8方法(项目有RsaCoder.java RsaUtil.java 两个类需要修改)
解决方法:BASE64编码方法替换commons-codec 包的BASE64编码方法
Pom文件添加引用
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
代码修改
3.2 lombok 兼容性问题
解决方法:将其版本升级1.18.4 版本以上
<lombok.version>1.18.4</lombok.version>
总结 通过以上步骤我们实现了JDK8 切换JDK11 升级改造。
猜你喜欢
- 2024-12-31 深入理解Java锁升级:无锁 → 偏向锁 → 轻量级锁 → 重量级锁
- 2024-12-31 GitHub Copilot最新升级!61%的Java开发者用来摸鱼,效率提升55%
- 2024-12-31 Java批量更新太慢?多线程+List分段完美解决
- 2024-12-31 如何使用Puppet开源配置管理工具更新Java项目?
- 2024-12-31 Java 热更新 Groovy 实践及踩坑指南
- 2024-12-31 什么?Java都更新到19了?Java 19新特性详解!
- 2024-12-31 干货!微服务全量升级JDK17,踩坑笔记整理
- 2024-12-31 最简单的K8S入门(四)扩缩容&滚动更新
- 2024-12-31 Java 近期更新:OpenJDK JDK Jakarta EE Spring等
- 2024-12-31 nacos配置更新后,java项目无需重启配置就生效
你 发表评论:
欢迎- 最近发表
-
- class版本不兼容错误原因分析(class更新)
- 甲骨文Oracle公司为Java的最新LTS版本做出改进
- 「版本发布」Minecraft Java开发版 1.19.4-pre1 发布
- java svn版本管理工具(svn软件版本管理)
- 我的世界1.8.10钻石在第几层(我的世界1.7.2钻石在哪层)
- Java开发高手必备:在电脑上轻松切换多个JDK版本
- 2022 年 Java 开发报告:Java 8 八年不到,开发者都在用什么?
- 开发java项目,选择哪个版本的JDK比较合适?
- Java版本选型终极指南:8 vs 17 vs 21特性对决!大龄程序员踩坑总结
- POI Excel导入(poi excel导入附件)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)