**TL:DR;**Java仍然可以以零成本获得,你只需要停止使用Oracle JDK,开始使用OpenJDK构建,比如这个或这个。
陷阱
Java 11已经发布了,它是一个重要的版本,因为它有长期支持(LTS)。 但甲骨文公司也把它设置成了一个陷阱(无论是有意还是无意)。
23年来,开发者从甲骨文公司下载JDK并免费使用。 在你最喜欢的搜索引擎中输入 "JDK",最上面的链接将是一个甲骨文Java SE的下载页面(我故意不提供链接)。 但这个搜索和这个链接现在是一个陷阱。
甲骨文JDK,即所有网络搜索带你到的那个,现在是商业的而不是免费的。
条款中的关键部分如下。
您不得:将程序用于任何数据处理或任何商业、生产或内部商业目的,除了开发、测试、原型设计和演示您的应用程序。
陷阱如下:。
- 下载 Oracle JDK(因为你一直都是这么做的,而且网络搜索也是这么告诉你的)
- 在生产中使用它(因为你没有意识到许可证的变化)
- 接到甲骨文公司许可证执行团队打来的讨厌的电话,要求支付大量的钱。
换句话说,甲骨文可以依靠Java开发人员的惯性,使他们下载错误的(商业)版本的Java。 除非你非常仔细地阅读文本/警告/法律条文,否则你甚至可能没有意识到Oracle JDK现在是商业的,因此你有责任为在生产中使用这个特定的JDK支付甲骨文。
(更新,2018-10-03。搜索Java 11和JDK 11现在似乎解决了OpenJDK的构建,而不是商业的!)
这是否是甲骨文方面的陷阱性恶意行为?读者们会有自己的看法。我建议记住,甲骨文公司在开发Java方面投入了大量资金,所以为那些需要的人提供一个商业计划是合理的。而且他们确实提供了一个免费的替代方案,对商业使用完全有效......
解决办法
解决办法很简单!
使用OpenJDK构建。
Java 11有许多不同的免费OpenJDK构建,所以你需要选择最适合你的需求的构建。
Adoptium(原名AdaptOpenJDK)的构建是免费的,获得了GPL许可(有Classpath例外,所以对商业使用是安全的),是一个很好的选择,因为它是供应商中立的,而且打算有4年以上的安全补丁。
Oracle的OpenJDK是免费的,获得了GPL许可(有Classpath例外,所以对商业使用是安全的),并与他们的商业产品一起提供。它只有6个月的安全补丁,之后Oracle希望你能升级到Java 12。
还有更多的OpenJDK构建,包括通过你的软件包管理器提供的构建。 请参阅这篇文章,了解涵盖各种OpenJDK构建的列表。 并参阅我的关于零成本Java的文章,了解背景信息。
点击这里下载其他OpenJDK构建版本
作为反驳,请看Marcus的精彩总结:为什么这里的基本变化实际上是个好消息。
总结
不要下载或使用Oracle JDK,除非你打算为它付费。
对于Java 11,请从AdoptOpenJDK、Oracle或其他地方下载并使用OpenJDK构建。
