草庐IT

java - Java 6 何时结束? (在编写开发人员工具的上下文中)

coder 2023-08-27 原文

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

8年前关闭。




Improve this question




背景

这并不像你想象的那么明显。

首先,同时 Oracle has stopped public support of Java 6 as of Feb 2013但是,由于 Premier 支持将持续到 2013 年 12 月,而 Extended 支持将持续到 2016 年 12 月,因此有点长尾。最重要的是,还有可以永远持续下去的持续支持。

下一个主要的 Java 供应商 IBM,does not seem to have even posted an end of support for Java 6 (并且在 2013 年 9 月之前仍然支持 Java 5!)

第三,我们有 Apple:目前最新的补丁是 2013 年 6 月,为 "the company does not spell out its support policies in black and white"这似乎是任何人的猜测......但如果他们处理 Java 5 可以用作基础,我们可能会看到另外 18 个月左右...... 2014 年底?

最后我们有了 OpenJDK...其中 Red Hat have said they will now be supporting ...

我什至还没有开始考虑 other JVM implementations只有在野外看到的更常见的!

所以从我所看到的,到目前为止,只要你有钱支付 Oracle/IBM/Red Hat,你就可以继续获得无限期支持的 Java 6 版本......

也许我们可以开始更好地构建这个问题,并有机会得到一个非不确定的答案:

  • 如果您不能再购买运行特定 JVM 的硬件/操作系统,那么继续支持该特定 JVM 就有点没有实际意义了。扩展支持契约(Contract)适用于现有客户,他们的现有系统很可能满足了他们的现有需求……如果他们无法更换到更新的系统

    这实际上为我们提供了有关 Apple 的一些背景信息...因为 Apple 硬件支持 5 年(如果在加利福尼亚州为 7 年),那么唯一受支持的 Apple 硬件应该是基于 x86 的硬件,因为转换是由 Dec 2006 (being the last PPC based Apple hardware to ship) 完成的。 ,所以实际上我们不必担心在 PPC 上运行的 Apple Java 版本,因为

    同样,我们可以排除在旧版 Windows 上运行的任何 Java 版本。这意味着来 Apr 2014如果 Java 安装程序不能在 Windows 7+ 上运行,那么我们可以有效地忽略 Windows XP 上支持的 Java 版本吗?
  • 我真正感兴趣的是开发人员工具什么时候可以改进他们的最低 Java 版本。

    Jenkins一段时间以来一直保持对 Java 5 的支持,但更新的变化意味着 1.520+主站和从站需要 Java 6 或更新版本。如果某些构建从属,例如,这可能会导致问题。旧硬件,无法运行较新的 JVM。

    Maven让您将 JVM fork 到 J2SE 1.3 以运行单元测试的历史悠久,但截至 Surefire 2.15它只支持在 Java 5 上运行单元测试。

    javac is moving to a 1 and three back政策条款 -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 开发人员通常没有资金购买扩展/高级/持续类型的支持契约(Contract),并且很可能无法访问晦涩的/大型机硬件。

    更新:“放弃对前 Java 7 JVM 的支持”我的意思是使用 -target 7 编译整个工具链是安全的。即字节码需要 Java 7 才能运行。

    更新 2:按照框架,这应该是一个基于事实的可回答问题。正确答案应该是以下形式之一

    No clear answer, here is a link to "some people that are providing free updates for OSS people on Java 6" and they have not said when they will stop yet.



    或者

    Yes there is a definitive date of YYYY-MM-DD and here is the evidence

    最佳答案

    Is there a clear date that can be used to establish when OSS developer toolchains can drop support for pre-Java 7 JVMs, and what is that date?



    没有。没有这样的日期。

    开发工具链的人可以在他们喜欢……或根本不喜欢时自由地放弃对 Java 的 EOL 版本的支持。假设,如果个人(或公司)与其他公司(例如客户)签订了契约(Contract)安排以在给定期限内提供支持,那么这些协议(protocol)显然会限制他们。但是,这不太可能限制整个项目。

    (然而,实际情况是,维护对旧版本 Java 的支持越来越难维持。开发人员希望/需要能够在工具链代码库中使用新的 Java 功能。因此,您可能会看到可以使用工具链为遗留 Java 开发代码,但您必须在现代 Java 上运行工具链。)

    对于 Java 代码库的 OSS 版本,您(Java 的用户)处于更好的位置:
  • 很可能会有一定程度的社区支持/发展远远超过这样做的商业可行性。
  • 如果没有,您可以访问源代码,这样您(理论上)就可以养活自己,或者花钱请其他人为您做。


  • 史蒂夫康诺利评论说:

    The OSS community cannot enter into support contracts.



    那是完全错误的。

    OSS 社区中的任何人都可以与您签订契约(Contract),为 OSS 产品提供支持。这实际上是一些开发人员如何赚钱,使他们能够继续开发他们的东西。

    此外,所有主流 OSS 许可证都允许这样做……包括 GPL 及其所有变体。

    But if it is not possible for an OSS community to grow developers because you cannot access the technology at all without incurring cost, then that forces pre-java 7 support as impossible.



    那也是错误的。

    Sun(以前的)和现在的 Oracle 提供 Java 免费版本的 EOL 版本的免费下载......一直回到 Java 1.1。 EOL-ing 不会改变可用性。它实际上是关于为最近发现的安全问题和其他错误提供旧版本 Java 补丁版本的可用性。你必须为此付出代价。 (很公平。完成这项工作需要 Oracle 资金。)

    问题是 Java 5 及更早版本以前和现在都不能以源代码形式免费提供。这意味着客户实际上并没有修复(比如说)Java 5 中的安全漏洞的选项。相比之下,在 Java 6 中他们确实有这个选项。 OpenJDK 6 代码库已作为开源发布,并且无法撤销。此外,由于 Java 7 和 Java 8 也是开源的,人们可以跟踪 Java 7 和 8 中的安全修复,并尝试将更改向后移植到 OpenJDK 6 代码库......

    关于java - Java 6 何时结束? (在编写开发人员工具的上下文中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17671899/

    有关java - Java 6 何时结束? (在编写开发人员工具的上下文中)的更多相关文章

    1. ruby - 在 Ruby 中编写命令行实用程序 - 2

      我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

    2. java - 等价于 Java 中的 Ruby Hash - 2

      我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

    3. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

      我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

    4. java - 从 JRuby 调用 Java 类的问题 - 2

      我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

    5. java - 我的模型类或其他类中应该有逻辑吗 - 2

      我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

    6. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

      什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

    7. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

      这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

    8. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

      HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

    9. 【Java入门】使用Java实现文件夹的遍历 - 2

      遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

    10. java - 为什么 ruby​​ modulo 与 java/other lang 不同? - 2

      我基本上来自Java背景并且努力理解Ruby中的模运算。(5%3)(-5%3)(5%-3)(-5%-3)Java中的上述操作产生,2个-22个-2但在Ruby中,相同的表达式会产生21个-1-2.Ruby在逻辑上有多擅长这个?模块操作在Ruby中是如何实现的?如果将同一个操作定义为一个web服务,两个服务如何匹配逻辑。 最佳答案 在Java中,模运算的结果与被除数的符号相同。在Ruby中,它与除数的符号相同。remainder()在Ruby中与被除数的符号相同。您可能还想引用modulooperation.

    随机推荐