当前位置: 首页 > article >正文

Java许可政策再变,Oracle JDK 17 免费期将结束!

原文地址:https://www.infoworld.com/article/3478122/get-ready-for-more-java-licensing-changes.html

图片

Oracle JDK 17的许可协议将于9月变更回Oracle Technology Network License Agreement,这将迫使用户重新评估他们的使用策略。

有句老话说,唯一不变的就是变化。这在Oracle Java的许可政策上体现得尤为明显。自2018年以来,随着新的OpenJDK发布节奏和特定长期支持(LTS)版本的推出,Oracle对许可条件和定价进行了四次重大调整,对企业内部Java的使用产生了较大影响。

最初,Oracle引入了技术网络许可协议(OTNLA)。在此之前,人们普遍认为Java平台是免费的,包括定期更新的维护服务。(从技术上讲,Java的使用有领域限制,如果用于嵌入式或一次性应用程序,可能需要支付许可费。)

OTNLA的限制更为严格。除非您将Oracle JDK用于个人用途(例如玩Minecraft)、开发、测试、Oracle批准的应用程序或在Oracle Cloud中使用,否则您需要购买Java SE订阅。OTNLA适用于Oracle JDK 8u211及更高版本以及Oracle JDK 11。

2021年9月,Oracle发布了Java的下一个LTS版本——JDK 17,同时对其许可政策进行了重大修改,推出了免费条款和条件(NFTC)。表面上看,NFTC似乎限制较少。

图片

  • 允许您使用Oracle JDK用于开发、测试、制作原型和演示应用程序,以及个人使用或内部业务运营

然而,许可并未明确界定什么是“内部业务运营”。许多用户基于这一点,选择使用Oracle JDK 17及其后续更新来维护应用程序的安全性和稳定性,而无需购买Java SE订阅。

但是,NFTC是有时间限制的。根据Oracle JDK许可常见问题解答

  • LTS版本(如JDK 17)将在后续LTS版本发布后的一年内根据NFTC条款继续更新。

随着LTS发布节奏从三年改为两年,任何给定的LTS版本都有三年的免费期。

后续LTS版本JDK 21已于2023年9月发布,这意味着JDK 17的免费期将于2024年9月结束。届时,Oracle JDK 17的许可证将恢复为OTNLA,用户将面临以下选择:

1.遵守OTNLA条款并支付后续更新费用

价格取决于公司员工数量。根据Java SE通用全球价格表,这包括所有全职、兼职、临时员工以及支持内部业务运营的代理商、承包商和顾问。

2.迁移到下一个LTS版本JDK 21

NFTC涵盖该版本,因此无需购买Java SE Universal订阅。虽然这看似简单,但在选择之前有几个因素需要考虑:

  • 尽管Java在其生命周期中表现出优秀的向后兼容性,但不能保证您的应用程序在JDK 21上能够按预期运行。自JDK 9以来,平台不仅增加了新功能,还移除了一些较旧、不常用的功能。这可能会给应用程序的迁移带来挑战,特别是对于较老或复杂的系统。

  • 迁移到JDK 21后,您只有两年的时间迁移到JDK 25,以避免JDK 21恢复到OTNLA。因此,您可能需要每两年继续迁移到下一个LTS版本。

3.转向其他Java发行版

Java的一个重要优势是OpenJDK项目,提供了多种替代发行版,这些发行版都通过了技术兼容性工具包(TCK)的测试,确保功能与Oracle Java SE一致。选择替代OpenJDK发行版可以提供不同级别的功能、支持和成本,通常比选项1便宜,最高可节省70%。通过选择合适的供应商,用户还可以获得更长的时间窗口,在此期间不需要立即升级到更新版本。

简而言之,若您打算继续在企业应用中使用 Oracle JDK 17,那么在用户依赖这些应用的情况下,您需要考虑诸多因素。不过,好在下一次许可证更新前,您仍有时间来制定相应的应对策略。

译文概述

  1. 从2024年9月开始,Oracle将不再为JDK 17提供免费的商用许可。

  2. Oracle 每两年发行一个长期支持(LTS)的JDK版本,并为每个LTS版本提供三年的免费使用期。

  3. 对于Oracle JDK 8u221之前的版本,用户可以继续无限期免费商用。

  4. 对于当前使用JDK 17的用户来说,迁移到JDK21是个不错的选择。JDK 21引入虚拟线程概念,这一特性显著降低了高并发应用程序的开发复杂性和资源消耗。此外,用户也可以考虑切换到其他免费的OpenJDK发行版。


http://www.kler.cn/news/304692.html

相关文章:

  • 7.测试用例设计方法 + Bug
  • linux安全软件Hydra使用教程
  • 速盾:cdn节点越多越好吗?
  • 如何优雅的使用 Nacos
  • Go语言现代web开发11 函数
  • git子模块处理的一些方法
  • 2024年华为9月4日秋招笔试真题题解
  • WalkMe的数字用户体验到底是啥
  • APP广告变现流量售卖,选择API还是SDK对接?
  • 前端Excel热成像数据展示及插值算法
  • DAY 9 - 10 : 树
  • 海量智库第31期 | 自治事务原理与应用解析
  • C++生成唯一值的五种方法
  • 【机器学习(六)】分类和回归任务-LightGBM算法-Sentosa_DSML社区版
  • 前端项目node版本问题导致依赖安装异常的处理办法
  • 网络安全实训七(MSF与CS互相连接)
  • “AI大语言模型+”助力大气科学相关交叉领域实践技术应用
  • ubuntu20.4安装Qt5.15.2
  • SQL案例分析:计算延迟法定退休年龄
  • vue项目如何在js文件中导入assets文件夹下图片
  • SAP B1 营销单据 - 单据字段介绍(中)
  • AI 工具如何提高工作效率
  • 果蔬识别系统性能优化之路(五)
  • Kafka 基于SASL/SCRAM动态认证部署,kafka加账号密码登录部署
  • 树莓派5开发板-安装Raspberry Pi系统-学习记录1
  • 钉钉虚拟位置打卡
  • Gitea Action注册runner
  • vue2,3生命周期
  • C++学习,多态虚函数
  • LeetCode:2390. 从字符串移除*号 使用栈,时间复杂度O(N)