ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

那么多 Java 版本,如何选择合适的版本

2021-05-30 10:58:45  阅读:206  来源: 互联网

标签:LTS Java 版本 JDK Oracle 发行版 合适


关于 Java 许可和发行版仍然有许多误区,我也参与其中。在我任职的大学,关于如何选择 Java 版本和确定更新策略仍然存在争议。Oracle 渥太华总监 Donald Smith 对此进行了澄清,可能类似的澄清已经不下100次了。本文汇总了我对相关问题的总结。在开始之前,请先阅读下面几篇文章:


  • <https://www.oracle.com/technetwork/java/java-se-support-roadmap.html>

  • <https://blogs.oracle.com/java-platform-group/oracle-java-se-releases-faq>

  • <https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later>


读完以后,咱们就开始吧。


1. 应该使用哪个 Java 发行版?


<https://jdk.java.net> 发行版除了最新的 JDK,还包含每季度的安全更新。它通过了 TCK 认证、质量测试,是一个可用于生产的开源 JDK。就 Java 11 来看,这个代码库与非开源授权的 Oracle JDK 一样。可以通过上面链接中的介绍了解二者的区别。当然,你仍然可以从 Oracle 技术网络(OTN)上下载 Java 并且免费用来个人开发或者培训。尽管如此,如果对发布 Java 产品有顾虑,可以使用 <https://jdk.java.net> 发行版,并推荐给你的客户使用。


还有许多其他渠道得到 JDK,比如各种 Linux 发行版、硬件供应商、独立软件供应商(ISV)以及其他支持供应商,可以根据自己的需要进行选择。稍后会对此详细讲解。


2. 长期支持(LTS)意味着什么?


Oracle 对 LTS 版本提供付费支持,包括 Java 7、8和11,并持续相当长的一段时间。Java 11 的付费支持会持续到2026年。Oracle 还为像 Java 12 这样的非 LTS 版本提供商业支持,前提是不被新版本取代。更多信息,请参见 <https://www.oracle.com/technetwork/java/java-se-support-roadmap.html>


3. Java 6个月的版本迭代意味着什么?


每年的三月和九月 Java 都会发布一个新特性,这打破了像之前 Java 8 这样的传统发布周期。Java 8 的最新版本是 212,这个数字不是发布的版本号。尽管如此,仍然有许多 Java 8 版本包含了新特性。6个月的发布周期现在用来发布补丁、修复 Bug 和更新。


我在 Twitter 上与 Oracle Java 语言首席架构师 Brian Goetz 进行了简短交流,他确认了 Java 向前兼容的承诺。如果用 Java 8 开发了代码,可以放心地在 Java 13 上运行。如果你正在为一个 Java 11 项目寻找新的开发者,面试者告诉你他们通过了 Java 13 培训,那么可以招聘。


4. 业界不是不考虑使用 LTS 版本以外的东西吗?


起初是这样的,但这仅仅因为自身的误解和受到错误的言论影响。就像过去听说有新版本时,你就会更新到新的 Java 8 一样,区别在于现在有一张可预测、有规律的时间表。这与现代应用开发实践以及其他平台的做法一致。这些平台更希望看到频繁更新但可管理,而不是每3到4年发生一次结构性改变。这有助于 Java 继续成为云计算头号开发平台。


5. 我主要在 Web 服务器上开发,它们不是都需要 Java 8 吗?


目前,IBM Open Liberty 和 RedHat Wildfly 的最新版本都在 Java 12 上运行,其他版本也支持 Java 12。我的非正式测试都运行在 Java 12 编译的 Servlet 和 JSF 应用上,但是 Maven 中编译器会设置 target 设为 1.8。结果证明,即使服务器、Payara 都在 Java 8 上运行也没有出现任何问题。


6. 那么其他的 Java 发行版呢?


Amazon、SAP、Azul、RedHat、Bellsoft 和 AdoptOpenJDK 等都提供 Java 发行版,这里只列举了一些。唯一显著的区别在于,<https://jdk.java.net> 只提供 .zip 或 .gz 文件,其他会提供安装包。它们几乎都是从相同的源代码构建的。Java 无需安装,只要解压然后配置应用程序、IDE 或者操作系统知道 Java 安装路径即可使用。安装包的作用就是解压,然后替你写入系统配置。这些公司的发行版只是为 Oracle 付费版增加了一个选项,或者针对 Intel 或 AMD 以外的某个平台提供特定版本,比如 ARM。这些公司已经做了很多年,比如 2008 年开始 Red Hat 就提供了 Java 6 的 OpenJDK 发行版。


7. 结论


如果你刚开始学习 Java 编程,就使用最新版。如果你正在使用 Java 开发,就升级到最新版。如果你担心 Oracle 的授权协议或者更喜欢开源,就从 <https://jdk.java.net> 下载 Java,否则就从 OTN 下载。


标签:LTS,Java,版本,JDK,Oracle,发行版,合适
来源: https://blog.51cto.com/u_15127686/2832712

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有