网站首页 > 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项目无需重启配置就生效
你 发表评论:
欢迎- 04-24Java Collections 工具类集合框架中常用算法解析
- 04-24桶排序的简单理解
- 04-24Java集合框架底层实现原理大揭秘
- 04-24Java 集合框架全面解析:选对数据结构,提升开发效率
- 04-24c#集合排序
- 04-24Java面试中常被问到的集合类深度解读
- 04-24VBA技术资料MF278:对集合进行排序
- 04-24Spring 最常用的 7 大类注解,史上最强整理
- 最近发表
- 标签列表
-
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)