首页 文章

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

提问于
浏览
11

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

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

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

我有几个问题 -

  • Oracle仍然支持JDK 1.8,但是停止向JDK 9发布更新,为什么?

  • 我应该继续使用JDK 1.8一段时间,然后直接切换到JDK 10吗?

2 回答

  • 16

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

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

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

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

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

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

  • 2

    Oracle转向了时间盒版本 . 这意味着您将每3个月获得一次新的Java版本,并且每隔几年就会发布一次长期版本 .

    预计长期版本将在下一版本发布后的3年内得到支持,因此我不希望在2019年末或2020年初之前推出新的LTS版本,因为2020年12月是对JDK 8的支持 .

相关问题