2021 年 9 月,Java 17 发布,并迅速创下了 Java 新版本最快采用速度的纪录。截至 2023 年,在 New Relic 监测的应用程序中,有 9% 在生产环境中使用了 Java 17。
得益于各种工具、库和框架的广泛支持,以及该版本新推出的特性和增强功能,Java 17 迅速得到采用。Java 17 也是一个“LTS”Java 版本,这表示 Oracle 会为其提供“长期支持”(包括五年付费高级支持和三年额外扩展支持)。
Oracle Java 的 LTS 版本还有一个额外好处:提供大约三年的免费期限。该版本根据“无费用条款和条件”许可证发布,可供所有用户免费使用,其中也包括希望在商业生产环境中使用 Oracle JDK 的用户。这一免费期限将持续到下一个 LTS 版本发布后的一年。此后,该许可证将转换为限制性更强的“Oracle 技术网络许可协议”,要求在商业生产环境中使用免费版本的公司必须购买 Java SE 通用许可证。
目前,Java 17 是免费的,但如果您使用的是 Oracle Java 发行版,那么到 9 月中旬,它将不再免费。许多公司,或许就包括您的公司,尚未准备好承担 Java SE 订阅的成本。
Oracle 以员工数量为标准,计算 Java SE 通用订阅的定价。客户将根据其组织中的员工人数支付费用,这其中不仅包括全职、兼职和临时员工,还包括为其内部业务运营提供支持的全职、兼职和临时代理、承包商、顾问和外包人员。
定价表如下:
员工 | 每位员工的成本 |
---|---|
1-999 人 | 15.00 美元 |
1,000-2,999 人 | 12.00 美元 |
3,000-9,999 人 | 10.50 美元 |
10,000-19,999 人 | 8.25 美元 |
20,000-29,999 人 | 6.75 美元 |
30,000-39,999 人 | 5.70 美元 |
40,000-49,999 人 | 5.25 美元 |
50,000 人以上 | 定制定价 |
假设一家拥有 10,000 名员工的公司在生产环境中使用 Oracle JDK 17 运行三个应用程序,从 9 月中旬开始,该公司将必须向 Oracle 支付 99 万美元的许可证费用。
10,000 (员工) x 8.25 美元 x 12 (月) = 990,000 美元
所有使用 JDK 17 的公司都必须支付这些费用吗?
从其他提供商(例如 Eclipse Temurin 或 Azul)那里获取 Java 17 发行版的公司将不会面临任何许可或定价变化。免费版本将继续保持免费,而付费支持订阅(如 Azul Platform Core 提供的订阅)将继续遵循现有的定价模式。例如,Azul Platform Core 支持 Azul Zulu JDK 和 Eclipse Temurin JDK,其定价依据使用情况而定,通常至少比 Oracle Java SE 便宜 70%。
从一个 JDK 发行版迁移到另一个发行版通常比预期的要容易,前提是两个发行版都通过了技术兼容性工具包测试套件的测试。这些测试被称为 TCK 测试,可证明发行版符合 Java SE 标准的规范。任何发行版,只要通过特定版本的所有测试(通常超过 10 万个测试),即表示其在功能上是等效的,只需在应用程序中更改指针,就可以在发行版之间切换。Azul 副首席技术官 Simon Ritter 在其《OpenJDK 迁移入门指南》一书中阐述了 Azul 经过验证的 OpenJDK 迁移流程。
虽然从 9 月中旬开始,JDK 17 的成本可能会让您感到惊讶,但通过了解 Java 17 和其他 Java LTS 版本的许可条款和支持时间表,您将能够针对所使用的 Java 发行版做出战略性决策,并确保您的 Java 环境长期稳定和安全。