新闻

2019年1月起,Oracle JAVA开始收费了,那么作为JAVA使用者来说要怎么做呢?

Oracle 曾在2018年4月就宣布,自 2019 年 1 月起,Java SE 8 公开更新将不向没有商用许可证的业务、商用或生产用途提供。即未来开发者还想使用 JDK 8,Oracle 将不会提供免费的技术支持,需要另外收费。(原文:https://www.oracle.com/technetwork/java/java-se-support-roadmap.html)

End of Public Updates of Java SE 8

Java SE 8 is going through the End of Public Updates process for legacy releases.  Oracle will continue to provide free public updates and auto updates of Java SE 8, until at least the end of December 2020 for Personal Users, and January 2019 for Commercial Users. Personal Users continue to get free Java SE 8 updates from Oracle at java.com (or via auto update), and Commercial Users continue to get free updates to Java SE 8 from OTN for free under the BCL license. Starting with the April 2019 scheduled quarterly critical patch update, Oracle Customers can access updates to Java SE 8 for commercial use from Oracle through My Oracle Support and via corporate auto update where applicable (Visit My.Oracle Support Note 1439822.1 – All Java SE Downloads on MOS – Requires Support Login).

Oracle does not plan to migrate desktops from Java SE 8 to later versions via the auto update feature. This includes the Java Plugin and Java Web Start. Instead of relying on a browser-accessible system JRE, we encourage application developers to use the packaging options introduced with Java SE 9 to repackage and deliver their Java applications as stand-alone applications that include their own custom runtimes.

Current releases remain free and open source for all users from jdk.java.net.

java是免费用的吗 java要收费了吗_开发人员

解释一下,并不是JAVA收费了,而是Sun JDK 8不再对商业用户提供免费的升级操作,JAVA本身依旧是免费的(至少现在还是这样)。

为什么?

我推测有两个原因, 第一个原因可以理解: Oracle JDK8 2014年3月发布, 到2019年1月正式进入“End of Public Updates”, 这个版本Oracle支持了将近5年时间,一个版本的软件不可能无限期地支持下去,那样维护成本太高。

第二个原因可能是没有多少人购买它的Java SE Advanced, Java SE Advanced Desktop 或者Java SE Suite, 这三个家伙是什么东西? 我们稍后解释。

你也许注意到了, 我刚才再说JDK的时候,特别加上了Oracle 这个词,这是因为Java虚拟机的规范是开放的,任何人都可以去实现。

老刘在2017年编程提高群第一季中,不就和大家一起实现了一个极为简单的版本吗? 当然那不能称为JVM ,只实现了对Class文件的解析,和一个能实现顺序,分支,循环,多态的简单执行引擎。

其实现在的JDK提供者非常多,不像微软的.NET,独此一家,别无分号。

官方解释(翻译难免有误,欢迎指正)

java是免费用的吗 java要收费了吗_应用程序_02

成功的软件平台及其周围的生态系统具有共生关系,包括正反馈周期。随着开发人员使用平台构建成功的产品来解决之前无法轻易解决的问题,该平台随着时间的推移不断发展,以提供新功能,使其更适合更新的用例。同时,成功的平台通过弃用和删除较少使用的旧功能来适应周围技术环境的变化。

这个过程总是在运动中。随着平台的新版本发布,旧版本逐渐减少,以便平台提供商可以将精力集中在未来,而不是过去。

几十年来,Java生态系统通过十大主要平台修订成功地完成了这一过程。长期强大的向后兼容性可保护整个生态系统的投资。与此同时,随着时间的推移,一定程度的适应是不可避免的。因此,该平台的持续成功要求大部分生态系统转向最新版本,同时保护现有投资。

Sun Microsystems建立了平衡这两个目标的策略,一方面是在一段时间内提供免费的公共更新,另一方面是为有不同需求的用户提供商业长期支持。此策略使大部分生态系统能够免费跟上发布节奏,同时以商业条款为希望按照自己的时间表从一个平台版本迁移到下一个平台的用户提供额外的安全性,性能和其他更新。一点都不

每一个新的开始都来自其他一些开端

Java SE 8于2014年3月18 日发布。当Oracle Java SE 8 在2019年1月达到商业用户公开更新结束时  ,Oracle将提供近五年的连续免费公共更新。

借助Oracle Java SE订阅,商业用户可以继续受益于对Oracle Java SE 8的支持和定期更新,包括增强功能和关键补丁,甚至更长的时间。例如,Java Web Start技术将继续在Oracle Java SE 8中得到商业支持,直到至少2025年3月。

并非所有Oracle Java SE 8用户都在商业上使用它。有些人用它来玩游戏,或运行消费者生产力应用程序。Oracle将继续为个人用户提供Oracle Java SE 8的免费公开更新,直到2020年12月。在此期间,个人用户应联系其应用程序提供商并鼓励他们将应用程序迁移到最新版本的Java,或者切换替代应用。

升级到JDK 10

Oracle Java SE 8的最短升级路径指向JDK 10.“ Oracle JDK 10迁移指南”中提供了有关应用程序开发人员的说明。也可以使用从Oracle JRockit迁移的用户的说明。

最新的Java版本可从甲骨文在写作的时候下载JDK 10.0.2。它位于安全基准,即它包含最新Oracle重要补丁更新中描述的安全漏洞修复程序。

升级到JDK 11

JDK 10将在2018年9月下旬达到其使用寿命。来自Oracle Java SE 8的下一个升级路径将导致JDK 11. Oracle Java SE 11是下一个计划的长期支持(LTS)版本,也是第一个这样的版本六个月的节奏。因此,即使在Java SE 12发布之后,Oracle客户也将收到Oracle Premier Support和定期更新版本。这使得Oracle Java SE 11成为ISV和其他商业用户的有吸引力的迁移目标。

由于JDK 11还没有发布,针对JDK 11的开发人员推荐的行动方案是通过使他们的应用程序在JDK 10上成功运行来开始从Java SE 8迁移。由于更快,半年一次的发布节奏 JDK 10和JDK 11之间的更改次数远小于JDK 8和JDK 10之间的更改次数。

一旦应用程序在JDK 10上运行良好,开发人员应该使用JDK 11 Release Candidate构建对其进行测试,以便在本月晚些时候发布时准备好迁移到JDK 11。

升级到JDK 12

希望将应用程序直接从Oracle Java SE 8迁移到JDK 12的开发人员应遵循相同的迁移模型 – 从安全基线的最新版本迁移开始,即此时的JDK 10.0.2,然后,一旦应用程序运行良好,继续增量迁移到最新版本的JDK 11。

一旦应用程序在JDK 11上运行良好,开发人员就应该开始使用JDK 12 Early Access构建对其进行测试。Oracle定期在GNU通用公共许可证版本2下发布JDK 12 Early Access 版本,并带有Classpath Exception。这些构建允许开发人员评估新的JDK 12 功能,并测试现有功能的更改对他们自己的应用程序的影响。

在2019年1月之后继续使用OpenJDK 8

此时,Oracle工程师已经在OpenJDK社区中领导和执行OpenJDK 8更新的大部分维护工作超过四年半。我们将至少在2019年1月之前继续这样做。在2019年1月之后,甲骨文的贡献者可能会将OpenJDK社区的工作重点从OpenJDK 8更新转移到其他当前的JDK版本,就像我们过去使用的OpenJDK 6一样和OpenJDK 7更新。

与过去一样,当一个合适的一方在2019年1月之后继续维持OpenJDK 8更新时,我们将讨论如何在OpenJDK社区中最好地实现这种转换。

因此,有兴趣在Oracle工程师继续使用后继续使用OpenJDK 8的用户应该在 2019年1月之前订阅该项目的邮件列表,并与剩下的贡献者讨论他们的期望和计划,以便更好地了解当时OpenJDK 8可用的支持范围。