是什麼妨礙了人們升級到Java 8以上版本? - Reddit

banq發表於2022-05-04

什麼阻止了人們將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。

 

相關文章