这并不像你想象的那么明显。
首先,虽然Oracle从2013年2月起停止了对Java 6的公开支持,但由于卓越支持将持续到2013年12月,而扩展支持将持续到2016年12月,因此存在一点长尾。除此之外,还有可能永远持续的支持。
下一个主要的Java供应商IBM似乎还没有宣布对Java 6的支持已经结束(直到2013年9月,它仍然支持Java 5!)
第三,我们有苹果:目前最新的补丁是在2013年6月,而且“该公司没有白纸黑字地阐明其支持政策”,这似乎是任何人的猜测...但是如果他们处理Java5可以作为基础,我们可能会看到另外18个月左右...2014年底左右?
最后我们有了OpenJDK。。。哪个红帽说他们现在会支持。。。
我甚至还没有开始考虑其他JVM实现,只是在野外看到的更常见的实现!
所以据我所知,到目前为止,只要你有钱支付甲骨文/IBM /Red帽子,你就可以继续获得无限支持的Java6版本...
也许我们可以开始更好地阐述这个问题,并有机会得到一个不确定的答案:
>
如果您再也买不到特定JVM运行的硬件/html" target="_blank">操作系统,那么继续支持特定JVM就没有意义了。扩展的支持合同是针对现有客户的,这些客户的现有系统很可能满足了他们现有的需求。。。如果他们不能换新的
这实际上给了我们一些关于苹果的背景。。。由于苹果硬件的支持期为5年(如果在加利福尼亚州为7年),那么唯一受支持的苹果硬件应该是基于x86的硬件,因为交换机在2006年12月完成(这是最后一个基于PPC的苹果硬件上市),所以实际上我们不必担心在PPC上运行的苹果Java版本,因为
同样,我们可以排除运行在旧版本视窗上的任何版本的Java。这意味着在2014年4月,如果Java安装程序不会在Windows 7上运行,那么我们可以有效地忽略在Windows XP上支持的Java版本吗?
我真正感兴趣的是开发人员工具何时可以提高其最低Java版本。
Jenkins对Java5的支持已经维持了一段时间,但是更新的更改意味着1.520在主服务器和从服务器上都需要Java6或更新的版本。如果某些构建从机(例如遗留硬件)无法运行较新的JVM,这可能会导致问题。
Maven长期以来一直允许您将JVM扩展到J2SE 1.3以运行单元测试,但从Surefire 2.15开始,它只支持在Java 5上运行单元测试。
javac在-Source
和-Target
方面正在转向1和3 back策略...所以我们需要等到JDK 10之后,才能从javac中删除Java6源文件支持...由于发布节奏为2年,Java8计划于2014年初发布,这意味着JDK9将于2016年初发布,JDK10将于2018年初发布...但是JDK9将再公开维护3年,这意味着在2019年是JDK 6源代码兼容性可能被取消的时候。
是否有一个明确的日期可以用来确定OSS开发者工具链何时可以放弃对Java 7之前的JVM的支持,那个日期是什么?
OSS的区别很重要,因为OSS开发人员通常没有资金购买扩展型/高级型/持续型支持合同,而且很可能无法访问模糊型/大型机硬件。
更新:我所说的“放弃对Java 7之前JVM的支持”是指使用-target 7
编译整个工具链是安全的,即字节码需要Java 7才能运行。
更新2:这应该是一个基于事实的可回答问题。正确答案应为以下任一形式
没有明确的答案,这里有一个链接到“一些人在Java6为开放源码软件的人提供免费更新”,他们还没有说什么时候会停止。
或
是的,YYYY-MM-DD有一个确定的日期,这是证据
是否有一个明确的日期可以用来确定OSS开发者工具链何时可以放弃对Java 7之前的JVM的支持,那个日期是什么?
没有。没有这样的日期。
开发工具链的人可以在他们喜欢的时候自由地放弃对Java的EOL版本的支持。。。或者根本没有。假设,如果个人(或公司)与其他公司(如客户)签订了合同安排,在给定的期限内提供支持,那么这些协议显然会约束他们。然而,这不太可能限制整个项目。
(然而,实际情况是,维护对旧版本Java的支持越来越难维持。开发人员希望/需要能够在工具链代码库中使用新的Java功能。因此,您可能会看到这样的情况:您可以使用工具链为旧版Java开发代码,但必须在现代Java上运行工具链(弗吉尼亚州)
在Java代码库的OSS版本的情况下,您(Java的用户)处于更好的位置:
>
可能会有一定程度的社区支持/发展,远远超过这样做在商业上可行的程度。
如果没有,你可以访问源代码,这样你就可以(理论上)支持自己,或者付钱给别人帮你做。
史蒂夫·科诺利评论道:
OSS社区无法签订支持合同。
这是完全错误的。
OSS社区中的任何人都可以与您签订合同,为OSS产品提供支持。这实际上是一些开发者赚钱的方式,让他们继续开发他们的东西。
此外,所有主流的开放源码软件许可证都允许这样做...包括GPL及其所有变体。
但是如果一个开放源码软件社区不可能发展开发人员,因为你根本无法在不产生成本的情况下访问这项技术,那么这就迫使java 7之前的支持是不可能的。
这也是错误的。
Sun(以前)和现在的Oracle提供免费下载Java的免费版本的EOL'd版本。。。一直回到Java1.1。下线不会改变可用性。它实际上是关于旧版本Java的补丁版本对于最近发现的安全问题和其他bug的可用性。你必须为此付出代价。(很公平。这项工作需要甲骨文的资金。)
问题是Java5和更早的版本过去和现在都不能以源代码的形式免费获得。这意味着客户实际上无法选择修复Java5中的安全漏洞。相比之下,在Java6中,他们确实有这种选择。OpenJDK 6代码库已经作为开源发布,并且不能被取消。此外,由于Java7和Java8也是开源的,人们可以跟踪Java7和8中的安全修复,并尝试将更改后传到OpenJDK 6代码库...
问题内容: 想像中的不是那么显而易见。 首先,虽然Oracle从2013年2月起停止了对Java 6的公共支持, 但是Premier支持到2013年12月为止,而Extended支持到2016年12月才有了长尾巴。最重要的是,可持续支持可能永远持续下去。 下一个主要的Java供应商IBM 似乎尚未发布对Java 6的支持终止 (并且在2013年9月之前仍将支持Java 5!)。 第三,我们拥有Ap
为了使调试更容易,Electron 原生支持 Chrome DevTools Extension。 对于大多数DevTools的扩展,你可以直接下载源码,然后通过 BrowserWindow.addDevToolsExtension API 加载它们。Electron会记住已经加载了哪些扩展,所以你不需要每次创建一个新window时都调用 BrowserWindow.addDevToolsExte
问题内容: 我正在开发一个Web应用程序,因为它可以访问下面的数据库,所以我需要能够从Safari,Chrome,Firefox和Internet Explorer中禁用开发人员工具,并在Firefox和所有类似的应用程序中禁用Firebug。有没有办法做到这一点? 注意:数据库提供的AJAX框架要求提供给数据库的任何内容都必须在可修改的Web参数中,并且返回的所有内容都必须使用JavaScrip
对于大多数DevTools的扩展,你可以直接下载源码,然后通过API加载它们。Electron会记住已经加载了哪些扩展,所以你不需要每次创建一个新window时都调用BrowserWindow.addDevToolsExtensionAPI。 注:React DevTools目前不能直接工作,详情留意https://github.com/atom/electron/issues/915 参考来编译
现在,随着杰克的宣布,谷歌澄清了Java与Android之间可预见的未来。但是这对Scala和其他基于JVM的语言开发人员有什么影响。特别是: Scala之所以如此神奇,是因为它有自己的编译器来生成Java字节码。但是Jack toolchain不处理字节码。生成的字节码会获得Jack处理的任何优化好处吗? 从Scala12开始,只支持Java8+。也就是说,生成的字节码也是Java8+。Jack
本文向大家介绍JavaScript开发人员的10个关键习惯小结,包括了JavaScript开发人员的10个关键习惯小结的使用技巧和注意事项,需要的朋友参考一下 随着新技术的不断发展,JavaScript已经不再仅仅只是一个网络语言。现在,我们能够看到很多使用JavaScript来构建基于本地浏览器的Web应用程序的手机,同时也有非常多的灵活的Web应用程序,如Trello。基于JavaScript