Java 6 的生命周期何时结束?(在编写开发人员工具的上下文中)[已关闭]背景问题
背景
这并不像你想象的那么明显。
首先,虽然Oracle已经从2013年2月停止了对Java 6的公开支持,但随着Premier支持到2013年12月,扩展支持到2016年12月,所以有点长尾。最重要的是,有持续的支持,可以永远持续下去。
下一个主要的Java供应商IBM似乎甚至没有发布对Java 6的支持终止的声明(直到2013年9月仍然支持Java 5!
第三,我们有苹果:目前最新的补丁是在2013年6月,由于“该公司没有以黑白方式阐明其支持政策”,这似乎是任何人的猜测......但是如果他们处理Java 5可以作为基础,我们可能会看到另外18个月左右......2014年底-ish?
最后我们有OpenJDK...红帽表示他们现在将支持...
我甚至没有开始考虑其他JVM实现,只考虑在野外看到的更常见的实现!
因此,据我所知,到目前为止,只要您有钱支付Oracle / IBM / Red Hat,您就可以继续获得无限期支持的Java 6版本...
也许我们可以开始更好地构建这个问题,并有机会获得一个非无限的答案:
-
如果您无法再购买特定JVM上运行的硬件/操作系统,那么继续支持该特定JVM是一个有争议的问题。扩展支持合同适用于现有客户,这些客户很可能通过现有系统满足其现有需求...如果他们不能更改为较新的
这实际上为我们提供了一些关于苹果的背景...由于Apple硬件支持5年(如果在加利福尼亚州为7年),因此唯一受支持的Apple硬件应该是基于x86的硬件,因为交换机于2006年12月完成(是最后一个基于PPC的Apple硬件),因此实际上我们不必担心在PPC上运行的Apple Java版本, 如
同样,我们可能可以排除在旧版Windows上运行的任何Java版本。这意味着到2014年4月,如果Java安装程序无法在Windows 7 +上运行,那么我们是否可以有效地忽略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背政策,在和...因此,我们需要等到 JDK 10 才能从 javac 中删除 Java 6 源文件支持...随着2年的发布节奏和Java 8计划在2014年初发布,这意味着JDK9在2016年初和JDK10在2018年初...但是JDK9将公开维护3年,这意味着2019年的某个时候,JDK 6源代码兼容性可能会下降。
-source
-target
问题
有没有一个明确的日期可以用来确定OSS开发人员工具链何时可以放弃对Java 7之前的JVM的支持,这个日期是什么?
OSS的区别很重要,因为OSS开发人员通常没有资金购买扩展/高级/持续类型的支持合同,并且很可能无法访问晦涩难懂/大型机硬件。
更新:通过“放弃对Java 7之前JVM的支持”,我的意思是编译整个工具链是安全的,即字节码需要Java 7才能运行。-target 7
更新 2:正如所框定的那样,这应该是一个基于事实的可回答问题。正确答案应为以下任一形式
没有明确的答案,这里有一个链接到“有些人在Java 6上为OSS人员提供免费更新”,他们还没有说他们什么时候会停止。
或
是的,有一个确定的YYYY-MM-DD日期,这是证据