Share via


從 JAVA 7 轉換至 JAVA 8

本文提供將應用程式從 JAVA 7 移轉至 JAVA 8 的高階指引。 未涵蓋 JAVA 8 功能的用法。

沒有任何一個大小適用的解決方案可轉換程式碼從 JAVA 7 轉換為 JAVA 8。 從 JAVA 7 移至 JAVA 8 通常是少量的工作。 潛在問題包括少數變更的 API、javac 中的類型推斷強化、類別載入器的變更,以及垃圾收集) 一部分的 perm (gen 變更。

一般而言,最佳方法是嘗試在 JAVA 8 上執行,而不需要先重新編譯。 此方法可讓應用程式儘快啟動並執行。 對於程式庫,您的目標是發佈使用 JDK 8 編譯及測試的成品。

JAVA 7 生命週期結束 (EOL)

當 JAVA 7 于 2022 年 7 月 29 日到達生命週期結束時,Community支援將會結束。 在 JAVA 7 上執行的任何應用程式都會繼續執行,但 JAVA 7 本身不會收到更新或安全性修補程式。 若要將風險和潛在的安全性弱點降到最低,請根據您的工作負載需求,將您的應用程式升級至 JAVA 8 或 11。

遵循標準指南是 Oracle JDK 移轉指南。 移轉指南涵蓋 JAVA 規格中的所有不相容 ,以及 JDK 實作中的不相容狀況。 這些不相容大部分都是邊緣案例,您應該在看到警告或遇到錯誤時進行調查。

在 JAVA 8 上執行

大部分的應用程式都應該在 JAVA 8 上執行,而不需修改。 嘗試的第一件事是在 JAVA 8 上執行,而不需重新編譯程式碼。 直接執行的目的是要確認執行時會出現哪些警告和錯誤。 此方法可
應用程式以更快速地在 JAVA 8 上執行,方法是將焦點放在需要完成的最低工作上。

您可以解決大部分可能遇到的問題,而不需要重新編譯程式碼。 如果您必須在程式碼中修正問題,請進行修正,但繼續使用 JDK 7 進行編譯。 可能的話,請先瞭解如何讓應用程式以 java 第 8 版執行,然後再使用 JDK 8進行編譯

使用 JAVA 8 進行編譯

使用 JDK 8 進行編譯可能需要更新,才能建置腳本、工具、測試架構和包含的程式庫。 -Xlint:unchecked使用 選項 javac 來取得 JDK 內部 API 和其他警告使用的詳細資料。

Azure App 服務的 JAVA 7 移轉

若要將 App Services 從 JAVA 7 移轉至 JAVA 8 或 11,請登入 Azure 入口網站,流覽至您要更新的 Web 應用程式 (s) ,然後> 移至 Configuration設定>Stack 設定。 如果您使用 Tomcat,您會看到 JAVA 主要和次要版本的下拉式清單,以及 Tomcat 版本。 選取 [JAVA 8] 或 [11]。 請記住,您可以在部署位置進行此設定變更,以安全地測試設定變更,然後將新環境交換至生產環境。 (JAVA 7 可能會隱藏,讓客戶不依賴舊執行時間。) 如需詳細資訊,請參閱在 Azure App 服務 中設定預備環境

Use the selector to change your Java version

JAVA_TOOLS如果您需要指定任何新的執行時間選項,則會在應用程式啟動時套用應用程式設定。 如需詳細資訊,請參閱設定適用于 Azure App 服務 的 JAVA 應用程式。 如需App Service上執行時間支援原則的詳細資訊,請參閱App Service概觀內建語言和架構一節。

下一步

在讓應用程式在 JAVA 8 上執行之後,建議您使用下列指南遵循 JAVA 11 的 JAVA 現代化路徑。