为什么Oracle JDK 9下载这么早就结束了?

Red*_*Boy 15 java java-8 java-9 java-10

我想在我的机器上安装JDK 9,访问JDK官方下载页面,很惊讶地看到,

Java SE 9已经到了支持终点.Java SE 9的用户应切换到Java SE 10.请访问我们的Java SE下载页面以获取当前版本的Java SE.您将在......秒内重定向到Java SE下载页面.请将书签更新到Java SE下载页面.

我做了一些谷歌搜索和Java发布历史等.但找不到任何具体的原因.

我有几个问题 -

  1. Oracle仍在支持JDK 1.8,但是停止向JDK 9发布更新,为什么?
  2. 我应该继续使用JDK 1.8一段时间,然后直接切换到JDK 10吗?

ano*_*ode 24

在过去,Java主要版本通常往往会加载影响深远的功能,这些功能会对您可以编写的代码产生巨大影响,例如泛型(Java 5)和功能构造(Java 8).

在Java 9中,他们引入了一个新的模块化系统(项目Jigsaw),它对JVM体系结构也产生了巨大的影响(尽管语言语法不是很多).由于与Java社区其他有影响力的成员实现该功能的分歧,他们不得不推迟两次Java 9的发布.

据推测,如果你愿意的话,Oracle决定彻底改革Java的开发风格,使其更具增量或"敏捷".他们希望每六个月在固定的发布时间表中发布具有较少新功能的主要版本,而不是功能加载的主要版本有时需要很多年才能完成.

Java 9和Java 10是使用此新版本模型安排的前两个版本,Java 9已经因Java 10的发布而被弃用.Java 11于2018年9月发布,是一个长期支持(LTS)版本,支持到2026年(来源).这与Ubuntu发布模型中的许多用户非常相似(另外,他们甚至计划用涉及发布年份和月份的内容替换版本号,类似于Canonical在Ubuntu中所做的事情,但出于某种原因放弃了这个想法).

使用非LTS版本的Java现在意味着承诺更新每6个月使用JDK的软件.它不应该像过去将代码从一个主要Java版本迁移到另一个主要Java版本那样,因为如上所述,语言更改应该以更加渐进的方式发生,但它绝对值得考虑.如果您不想做出这样的承诺,您应该坚持使用LTS版本,这意味着坚持使用Java 8或Java 11.

对于一个新的"绿地"项目,Java 11很可能是目前最好的选择.但如果要使用的工具链尚未完全支持Java 11,则可能需要坚持使用Java 8.

  • 除非并非每个IDE和其他工具都支持最新的JDK功能......所以要小心.成为第一个可能很有趣,但它也意味着第一个发现所有的错误:) (5认同)
  • 好的,但是切换到Java 11应该很容易吗?但是,最好只使用LTS版本进行生产.@Jonathan (2认同)
  • 您的答案应该描述LTS是什么以及为什么Java 9和10只有短期支持.如果你不能立即升级到Java 11,那么推荐Java 10可能是一个坏主意.Java 8应该仍然是那些无法负担每6个月升级的人的推荐版本. (2认同)