背景
这并不像你想象的那么明显。
首先,虽然Oracle 自 2013 年 2 月起停止了对 Java 6 的公开支持,但随着 Premier 支持将持续到 2013 年 12 月,Extended 支持将持续到 2016 年 12 月,这有点拖了后腿。除此之外,还有可以永远持续下去的持续支持。
下一个主要的 Java 供应商 IBM似乎甚至没有发布对 Java 6 的支持(并且在 2013 年 9 月之前仍然支持 Java 5!)
第三,我们有 Apple:目前最新的补丁是 2013 年 6 月,并且由于“该公司没有以黑白方式说明其支持政策”,这似乎是任何人的猜测......但如果他们处理 Java 5 可以以此为基础,我们可能会看到另外 18 个月左右的时间...... 2014 年末?
最后我们有了 OpenJDK ...... Red Hat 已经表示他们现在将支持......
而且我什至还没有开始考虑其他 JVM 实现,只是在野外看到的更常见的实现!
所以据我所知,到目前为止,只要你有钱支付 Oracle/IBM/Red Hat,你就可以继续获得无限期支持的 Java 6 版本......
也许我们可以开始更好地构建这个问题,并有机会得到一个不确定的答案:
如果您不能再购买运行特定 JVM 的硬件/操作系统,那么继续支持该特定 JVM 就有点争议了。扩展支持合同适用于现有客户,他们现有的系统很可能满足他们的现有需求……如果他们无法更换为更新的系统
这实际上为我们提供了有关 Apple 的一些背景信息......因为 Apple 硬件支持 5 年(如果在加利福尼亚,则为 7 年),那么唯一受支持的 Apple 硬件应该是基于 x86 的硬件,因为切换已在2006 年 12 月完成(是最后一个基于 PPC Apple 硬件),因此实际上我们不必担心在 PPC 上运行的 Apple Java 版本,因为
同样,我们可能可以排除在旧版本 Windows 上运行的任何 Java 版本。这意味着如果 Java 安装程序无法在 Windows 7+ 上运行,那么到2014 年 4 月,我们可以有效地忽略 Windows XP 支持的 Java 版本吗?
我真正感兴趣的是开发人员工具何时可以提升他们的最低 Java 版本。
Jenkins一直在维护对 Java 5 的支持,但更新的更改意味着1.520+需要在主服务器和从服务器上使用 Java 6 或更高版本。如果某些构建从属设备(例如旧硬件)无法运行较新的 JVM,这可能会导致问题。
Maven长期以来一直允许您将 JVM 分叉到 J2SE 1.3 以运行单元测试,但从Surefire 2.15开始,它只支持在低至 Java 5 上运行单元测试。
javac 在和方面正在转向 1 和 3 后退
-source
政策......-target
所以我们需要等到 JDK 10 之后才会从 javac 中删除 Java 6 源文件支持......以 2 年的发布节奏和 Java 8 计划2014 年初发布,这意味着 JDK9 将在 2016 年初发布,JDK10 将在 2018 年初发布……但 JDK9 将公开维护另外 3 年,这意味着 2019 年的某个时间可能会放弃 JDK 6 源代码兼容性。
问题
是否有一个明确的日期可以用来确定 OSS 开发人员工具链何时可以放弃对 Java 7 之前的 JVM 的支持,那个日期是什么时候?
OSS 的区别很重要,因为 OSS 开发人员通常没有资金购买扩展/高级/持续类型的支持合同,而且很可能无法使用晦涩的/大型机硬件。
更新:通过“放弃对 Java 7 之前的 JVM 的支持”,我的意思是编译整个工具链是安全的,-target 7
即字节码需要Java 7 才能运行。
更新 2:这应该是一个基于事实的可回答问题。正确答案应该是以下任何一种形式
没有明确的答案,这里是“一些人正在为 Java 6 上的 OSS 人员提供免费更新”的链接,他们还没有说什么时候停止。
或者
是的,有一个确定的日期 YYYY-MM-DD,这是证据