为了账号安全,请及时绑定邮箱和手机立即绑定

是时候迁移到Java 11了,Java 8到11迁移实战

标签:
Java

webp

JDK 8将停止支持

webp

Oracle JDK 8将于2019年1月(从现在起153天)停止发布公共更新,时间不多了,所以虫虫认为现在是最好的时机迁移到最新版JDK版本,享受新版本的各种黑魔法和新功能了。

另外,在虫虫以前的文章中也提到过,从JDK 11开始,其发布周期变为每6个月一个新版本,每3年发布一个新的LTS版本(下一个是JDK 11)。

值得一提的是,发布的公开使用的Oracle JDK将支持OpenJDK源代码进行编译而无需更改。

Java会收费吗?

ORACLE确保,不会对Java公共开放不会收费。所有Java/JDK开发基于OpenJDK版本库中完成,所有修复和增强功能都将推送到该开放库。

webp

另外,三方公司也都有自己JRE实现,比如谷歌,Azul和RedHat等,以及IBM开源的Java/JDK实现OpenJ9:

webp

向Java 11迁移

在Java 9,10和即将发布的Java 11 LTE,我们来着重介绍下如何迁移Java应用程序和模块及其可能存在的未解决的问题。虽然类似的文章问多,但是深入的太少,大多数文章都集中在简单的Hello World应用程序上。

本文我们将介绍个基于Spring Boot框架的应用程序为实例分步介绍迁移具体过程。选择这样做的示例应用程序是Spring PetClinic,一个使用WebMVC,Actuator,Cache,Data JPA,Thymeleaf和Test starters的Spring Boot 2示例应用程序。完全迁移到Java 11基本上有三个主要过程:

1.使用JDK 11运行现有Java应用程序。

2.使用Java 11编译应用程序。

3.模块化应用程序以使用模块系统。

如果你还没有准备好同时做这三件事,那请追随虫虫脚本开始。

JDK 11开发环境构建

首先,你需要为你的操作系统下载并安装JDK 11。

首先更新你喜欢的IDE以支持Java模块系统:

根据各自的IDE官网下载相应模块(地址略):

Eclipse IDE,IntelliJ IDEA,Apache NetBeans

1.使用JDK 11运行现有Java应用程序

为什么要从JDK 8升级到JDK 11?因为我们将能享受到以下这些的黑魔法:

JDK 11 黑魔法

继Java 8后最新LTS长期支持版本(如果你拥有商业许可证)。

完全支持Linux容器(包括Docker)。

支持G1上的并行完全垃圾收集。

免费应用程序类,数据共享功能。

免费的低耗能飞行记录仪和堆分析仪。

备用存储设备上的堆分配。

新的默认根权限证书集。

新的ZGC和Epsilon垃圾收集器。

Ahead-of-time编译和GraalVM。

最新的HTTPS安全协议TLS 1.3。

JShell。

支持"shebang"Java脚本文件! #!/bin/java

运行你的应用程序

这是一个非常简单的步骤,使用早期Java版本创建的应用程序都可以在JDK 11上运行而不会出现重大问题,除非你得依赖模块中包括JEP-320中从JDK中删除的Java EE或CORBA模块。

webp



作者:虫虫猎奇ccsearchit
链接:https://www.jianshu.com/p/81bc73e6c0ae


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消