返回
2026/10/12
大多數遷移專案都始於一項決定:從 Oracle Java SE 轉換到 OpenJDK、汰換已終止支援(EOL)的 Linux 發行版,或將伺服器整合到私有雲。計畫在紙面上通常看起來很簡單。但接著專案團隊就會發現沒人知道的 Java 執行環境、無人負責的伺服器,以及默默依賴舊版本的應用程式。結果時程延誤,預算膨脹。
避免這種情況的方法,是從現況調查(discovery)著手:以事實為基礎,完整盤點實際安裝了哪些項目。本文說明需要蒐集哪些資訊、如何在 Windows 與 Linux 上蒐集、可能遇到哪些意外,以及如何將結果轉化為遷移計畫。
重點摘要
- 在規劃任何遷移之前,先建立完整的 Java 與 Linux 資產清冊。
- 為每個執行環境記錄完整版本、廠商、路徑與負責人。
- 除了套件清單之外,也要搜尋檔案系統:許多執行環境是直接解壓縮而來,或隨應用程式一併附帶。
- 將結果分為四組(移除、汰換、協調、調查),再據此擬定計畫。
為什麼現況調查要先於遷移
遷移的品質取決於其所依據資訊的品質。沒有資產清冊,就只能憑記憶、舊的試算表和授權紀錄來估算範圍,而這些都無法反映目前實際運作的情況。
一份完善的資產清冊能帶來三項價值:
- 範圍:受影響的機器、執行環境與應用程式數量,有助於切實估算工作量與成本。
- 風險:哪些系統執行的是不受支援或未修補的版本,哪些系統對業務至關重要。
- 權責:每個系統由誰負責,讓測試與驗收都有明確的負責人。
在授權協商時,它也能保障您。若廠商詢問您有多少安裝,一份最新的資產清冊能讓您以事實而非猜測來回答。
要蒐集什麼:版本、廠商、路徑與負責人
針對每一個 Java 安裝,至少蒐集以下資訊:
- 主機:機器名稱、IP 位址,以及它是伺服器、虛擬機器還是桌上型電腦。
- 版本:完整的版本字串,例如 1.8.0_202 或 17.0.10,而不只是「Java 8」或「Java 17」。
- 廠商:執行環境由誰建置,例如 Oracle 或某個 OpenJDK 發行版。光看版本無法得知這一點。
- 類型與路徑:是完整的 JDK 還是只有 JRE,以及安裝目錄。
- 用途:若能查明,有哪些應用程式或服務在使用它。
- 負責人:負責該機器或應用程式的團隊或人員。
對於 Linux 伺服器,也應蒐集發行版及其版本、核心版本、主要已安裝套件以及正在執行的服務。如此便能得知哪些伺服器除了 Java 遷移之外,也屬於 Linux 遷移的範圍。
Windows、Linux 與桌上型電腦:不同的做法
每種環境需要的方法略有不同。以下指令只是起點;實務上,團隊通常會將其包裝成指令碼,並透過既有的管理工具在所有機器上執行。
Windows 伺服器
已安裝的 Java 執行環境通常會登錄在 Windows 登錄機碼 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft 之下,但並非全部如此。搜尋檔案系統較為可靠:
Get-ChildItem -Path C:\ -Filter java.exe -Recurse -ErrorAction SilentlyContinue |
Select-Object FullName, @{n='Version'; e={$_.VersionInfo.ProductVersion}}
請檢查所有磁碟機,而不只是 C:,因為應用程式伺服器常安裝在獨立的資料磁碟機上。
Linux 伺服器
在 Linux 上,應結合套件管理工具與檔案搜尋,因為許多 Java 執行環境是從壓縮檔解壓縮而來,而非以套件形式安裝:
cat /etc/os-release
rpm -qa | grep -i -E 'jdk|jre|java'
find / -xdev -type f -name java -perm -u+x 2>/dev/null
在 Debian 或 Ubuntu 上,請改用 dpkg -l | grep -i -E 'jdk|jre' 取代 rpm。對找到的每個 java 執行檔加上 -version 執行,即可顯示版本,通常也會顯示廠商。大多數 JDK 目錄中也有一個 release 檔案,其中載明了實作者(implementor)。
桌上型電腦
桌上型電腦是資產清冊中最常被遺漏的部分。開發人員會自行安裝 JDK,業務應用程式有時也會悄悄安裝 Java 執行環境。由於桌上型電腦數量眾多,應盡可能利用端點管理工具的軟體清查資料,僅在缺少該資訊時才執行輕量的指令碼。
常見的意外(隨附的 JRE、被遺忘的伺服器)
幾乎每個現況調查專案都會發現出乎意料的東西。最常見的包括:
- 隨附的執行環境:許多商用應用程式會在安裝目錄中自帶專用的 Java 執行環境。它可能不會出現在登錄檔或任何套件清單中。
- 一台機器上有多個版本:安裝新的執行環境時,舊版很少被移除,因此一台伺服器上可能有三、四個。
- 被遺忘的伺服器:從未除役的測試機、舊的批次伺服器與虛擬機器,經常執行著過時且未修補的版本。
- 負責人不明:沒有人認領的機器。即使最後決定是關機停用,也必須在遷移開始前做出決定。
提示:隨附的執行環境通常必須透過應用程式廠商處理,而不能直接汰換,因此請與您自行管理的執行環境分開記錄。
從資產清冊到遷移計畫
資料蒐集完成後,請彙整到同一處,並與各系統負責人一同檢視。接著將這些安裝分為以下類別:
| 分組 | 包含內容 | 處理方式 |
|---|---|---|
| 移除 | 已不再使用的執行環境 | 立即解除安裝,以降低風險與授權方面的曝險 |
| 汰換 | 您自行管理的執行環境 | 經測試後改用受支援的 OpenJDK 建置版本 |
| 協調 | 隨第三方應用程式附帶的執行環境 | 先取得應用程式廠商的支援聲明 |
| 調查 | 任何沒有負責人或用途不明的項目 | 找出負責人,或決定關機停用 |
根據這些分組,即可擬定切實可行的時程:先從低風險系統開始驗證流程,再於備妥經過測試的回復途徑後,推進至關鍵業務系統。
提示:在最終切換前,請再執行一次現況調查掃描。在長期專案中,環境會變動,也會出現新的安裝。
LOGIQ 如何協助
LOGIQ 為 Java 與 Linux 環境執行現況調查與遷移專案,所使用的指令碼與程序已在 Windows 伺服器、Linux 伺服器與桌上型電腦的實際客戶專案中持續精進。如果您需要協助建立資產清冊,或將其轉化為遷移計畫,請聯絡 LOGIQ。
Global
Japan
Korea
China
Vietnam
Thailand
Indonesia
Portugal
Spain
France
Germany
Egypt
Russia