是什么妨碍了人们升级到Java 8以上版本? - Reddit


什么阻止了人们将Java 8升级到更高版本?

回答:
1、是穿西装的白痴,然后还问为什么要让开发人员流血?
西装革履的白痴是生产力和进步的最大障碍。

2、我们通过使用不易受攻击的旧版本来避免 log4shell。

3、我的个人项目使用 Java 17。
在工作中,我们在去年使用 1.6 之后才设法迁移到 Java 8。
一些项目仍处于 Java 1.4

4、因为升级Java版本总是会破坏某处的东西并且找到/修复这些东西是一项乏味且吃力不讨好的工作。
在管理层的眼中,狗屎本来一直在起作用,但是你把它弄坏了。修复你破坏的东西根本不会得到奖励。

5、我们前段时间从 8 迁移到 11,但遇到了很多问题:

  • - Spark 2.4 不支持 Java 11,Spark 3 当时没有发布日期。为了对 Java 11 支持进行更新,我们必须维护自己的 Spark 分支fork。
  • - 在运行时解析 Java 版本号的各种库无法处理新版本格式,并且会在启动时崩溃。特别是我记得在使用 HBase 客户端时遇到过这个问题。在这些情况下,我们还必须维护自己的 fork 以支持 Java 11。
  • - 删除了 java.xml.ws、java.xml.bind、java.activation 等(连同 jakarta 开关,它造成了相当麻烦的依赖关系混乱)
  • - 我们看到各种应用程序的堆外内存使用量增加,导致超出 cgroup 限制(导致进程被终止)。我们最终全面突破内存限制只是为了掩盖这个问题

6、我们目前在 jdk 17 上遇到了同样的“生态系统尚未完全升级”的问题。相当令人沮丧

7、也有Windows XP/Vista 支持的问题。Java 8 是在这些系统上工作的最后一个版本,它是我过去的工作场所和我现在的工作场所所必需的。这些是客户端应用程序,一些客户尚未迁移到现代 Windows。

8、大量的旧代码单体。升级我们使用的技术堆栈中的任何内容都需要大量工作。它确实让我们避开了 log4j 安全问题的子弹,因为我们的版本太旧并且不再维护了 :)
“老得不能倒”

9、在 Oracle Weblogic 中运行我们的应用程序的客户端。只有最新版本的 Weblogic (14c) 支持 JDK 11。
是的,您没看错:Oracle 阻止我们升级到 Java 17。

10、对于我公司的一些项目,还在使用“Struts 1.1”。
哈哈,当新候选人或同事问我们是使用 spring 还是 quarkus 时,我总是最喜欢。
我说“Struts,但是 v1”。
有些人甚至点头,但你可以清楚地看到他们不知道它是什么,并担心他们错过了最新的东西。

11、使用spring-loaded进行热重载不支持 JDK 8 以外的任何内容。新的 spring-devtools 速度要慢得多。
JRebel 是另一种选择,但它们变得如此昂贵,甚至不再在其网站上列出价格。
可以尝试使用 DCEVM 的 JetBrains Runtime?https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr17.0.2b396.4
它应该需要传递-XX:+AllowEnhancedClassRedefinition标志

12、IBM WebSphere Application Server 9 传统版。它仅支持 Java 8。