Java 版本管理全攻略:從檢查、安裝到常見問題排除

目次

1. 前言

Java 版本管理為何重要

Java 是一種廣泛用於各種軟體開發的程式語言,例如 Web 應用程式、行動應用程式和企業系統。它的演變非常顯著,每個版本都增加了新功能並更改了規格。

例如,Java 8 引入了 Lambda 表達式和 Stream API,而 Java 11 及更高版本則淘汰了部分模組,這也影響了執行環境和函式庫的相容性。為了適當應對這些變更,持續掌握自己開發環境中「正在使用哪個 Java 版本」至關重要。

此外,在企業和開發現場,從安全性措施和長期支援(LTS)的角度來看,指定特定的 Java 版本進行操作的情況並不少見。因此,如果使用的版本過舊,可能會伴隨支援結束的風險。

本文目的與目標讀者

本文將全面解說 Java 版本的檢查方法、安裝、更新和問題排除。目標讀者為以下人士:

  • 剛開始使用 Java 進行開發的初學者
  • 想確認正在使用版本的進階學習者
  • 在環境設定或更新時遇到問題的實務工作者

本文將詳細介紹 Windows、Mac、Linux 等主要作業系統的步驟,以及使用開發工具的檢查方法,因此內容設計上能適用於各種環境。

旨在幫助讀者掌握有關 Java 版本的正確知識,並建立安全舒適的開發環境。

2. Java 版本檢查方法

2.1 使用指令行檢查 Java 版本的方法

使用 java -version 指令

最基本且確實的方法是使用指令行來檢查 Java 版本。這個方法與作業系統無關,都能使用。

步驟(通用):

  1. 開啟終端機 (Mac/Linux) 或命令提示字元 (Windows)。
  2. 輸入以下指令並執行。
java -version

輸出範例:

java version "17.0.2" 2022-01-18 LTS
Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)

從這個結果可以得知,「Java Runtime Environment(JRE)」的版本是 17。

使用 javac -version 檢查 JDK 版本

同時檢查 Java 編譯器 javac 的版本,可以確認 JDK 是否正確安裝。

javac -version

輸出範例:

javac 17.0.2

檢查 Java 執行檔的位置

安裝了多個版本時,確認正在使用哪個執行檔非常重要。

  • Windows:
  where java
  • Mac/Linux:
  which java

透過檢查輸出的路徑,可以知道 Java 安裝在哪裡。

2.2 使用 GUI 檢查(Windows)

如果不熟悉指令操作,也可以從 Windows 的 GUI 檢查 Java 版本。

在 Java 控制面板中檢查

  1. 從「開始」選單輸入「Java」並開啟「設定 Java」。
  2. 點擊「Java」標籤頁,然後選擇「檢視」。
  3. 會顯示已安裝的 Java 版本列表。

這樣一來,即使存在多個版本,也能透過列表確認。

2.3 使用 GUI 檢查(Mac)

在 Mac 上也能從 GUI 檢查 Java 版本。

從「系統設定」檢查

  1. 從 Apple 選單開啟「系統設定」>「Java」。
  2. Java 控制面板會啟動。
  3. 選擇「Java」標籤頁,然後點擊「檢視」。

與 Windows 相同,可以確認版本的詳細資訊。

2.4 使用 Eclipse 檢查 Java 版本

如果您使用 Eclipse 作為開發環境,檢查每個專案的 Java 版本設定非常重要。

步驟:

  1. 啟動 Eclipse,並右鍵點擊目標專案。
  2. 前往「屬性」>「Java 編譯器」。
  3. 在「編譯器符合等級 (Compiler compliance level)」欄位中,會顯示正在使用的 Java 版本。

此外,Eclipse 本身使用的 JDK 版本可以透過以下步驟確認:

  1. 透過「視窗」>「偏好設定」>「Java」>「已安裝的 JRE」進行確認。
  2. 檢查正在使用的 JRE 詳細資訊,就可以知道 JDK 的路徑和版本。

3. Java 安裝方法

3.1 Windows 安裝步驟

從 Oracle 官方網站下載 JDK

  1. 在瀏覽器中前往 Oracle 官方下載頁面
  2. 找到最新的「Java SE Development Kit(JDK)」項目,選擇 Windows 適用的安裝程式(.exe 格式)。
  3. 同意授權後開始下載。

使用安裝程式進行安裝

下載完成後,執行安裝程式,並依照以下步驟進行:

  • 安裝目錄基本上使用預設值即可。
  • 安裝會在數分鐘內完成。

環境變數設定(重要)

若要從指令行使用 Java,需要設定環境變數。

  1. 開啟「控制面板」>「系統」>「進階系統設定」>「環境變數」。
  2. 從「系統變數」中選擇 Path,並新增 bin 資料夾的路徑(例如:C:\Program Files\Java\jdk-17\bin)。
  3. 建立一個新的變數 JAVA_HOME,並指定 JDK 的路徑。

設定完成後,在命令提示字元中執行 java -version,確認是否正確安裝。

3.2 Mac 安裝步驟

JDK 下載與安裝

  1. 前往 Oracle 官方頁面,下載 Mac 適用的 JDK(.pkg 格式)。
  2. 雙擊下載的檔案啟動安裝程式,並依照畫面指示進行安裝。

在終端機中確認與環境變數設定

安裝完成後,開啟終端機並執行以下指令:

java -version

如果顯示的版本是最新的,就表示成功了。

如有需要,在 .zshrc.bash_profile 中加入以下內容,設定 JAVA_HOME

export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH

設定完成後,執行 source ~/.zshrc 使其生效。

3.3 Linux 安裝步驟

使用套件管理器安裝(Ubuntu/Debian 系列)

sudo apt update
sudo apt install openjdk-17-jdk

接著,檢查版本:

java -version
javac -version

使用套件管理器安裝(CentOS/RHEL 系列)

sudo yum install java-17-openjdk-devel

切換多個版本的情況

在 Ubuntu 等系統中,可以使用以下指令切換已安裝的 Java 版本:

sudo update-alternatives --config java

手動安裝(使用 tar.gz 檔案)

  1. 從 Oracle 官方網站下載 tar.gz 格式的 JDK。
  2. 解壓縮到 /usr/lib/jvm/ 等目錄。
  3. 手動設定符號連結和環境變數。

如果想使用最新版本或特定的 JDK 發行版本,這個方法很方便。

4. Java 更新方法

4.1 Windows Java 更新

從 Java 控制面板手動更新

如果 Windows 安裝了 JRE,可以依照以下步驟進行更新。

  1. 從「開始」選單輸入「Java」並開啟「設定 Java」。
  2. 點擊「更新」標籤頁。
  3. 點擊「立即更新」後,會開始檢查最新版本並進行安裝。

這個方法僅限於 JRE,如果使用的是開發用的 JDK,基本做法是從 Oracle 官方網站手動重新安裝最新版本。

手動重新安裝 JDK 的方法

JDK 的更新是透過「下載最新版本並安裝」來進行的。

  1. 前往 Oracle 官方頁面。
  2. 下載最新的 JDK(舊版本可以刪除)。
  3. 安裝完成後,如有需要,重新設定 JAVA_HOMEPath

4.2 Mac Java 更新

從 Java 控制面板更新(JRE 的情況)

  1. 從「系統設定」>「Java」開啟控制面板。
  2. 點擊「更新」標籤頁。
  3. 執行「立即更新」。

更新 JDK 的方法

在 Mac 的情況下,通常也是手動安裝最新版本的 JDK。

  1. 從 Oracle 官方頁面或 Adoptium 等 JDK 分發網站下載最新版本。
  2. 雙擊 .pkg 檔案進行安裝。
  3. 如果不再需要舊版本,可以將其解除安裝。

別忘了重新設定 JAVA_HOME

如果使用新版本,JAVA_HOME 的路徑可能會改變,因此請使用以下指令重新設定:

export JAVA_HOME=$(/usr/libexec/java_home)

4.3 Linux Java 更新

使用套件管理器更新

在 Linux 環境中,可以使用作業系統內建的套件管理系統來更新 Java。

Ubuntu/Debian 系列:

sudo apt update
sudo apt upgrade openjdk-17-jdk

CentOS/RHEL 系列:

sudo yum update java-17-openjdk-devel

切換多個版本

新舊 JDK 共存時,需要手動切換要使用的版本。

sudo update-alternatives --config java
sudo update-alternatives --config javac

會以互動方式顯示列表,只需選擇要使用的版本即可切換。

手動更新(使用 tar.gz)

如果不依賴套件,想安裝任意版本,也可以下載 tar.gz 格式的 JDK,然後手動解壓縮並設定路徑。刪除舊的 JDK,並重新設定路徑和環境變數即可。

5. 常見問題與解決方法

5.1 檢查版本時顯示「’java’ 不是內部或外部指令、可執行的程式或批次檔。」

原因

  • 環境變數 Path 未設定 Java 的路徑。
  • Java 未正確安裝。

解決方法

  1. 確認 JDK 是否正確安裝。
  2. 在環境變數 Path 中加入 Java 的 bin 目錄,例如:
   C:Program FilesJavajdk-17in
  1. 加入後,重新啟動命令提示字元並再次執行 java -version

5.2 多個 Java 版本混用導致呼叫到非預期的版本

原因

  • 安裝了多個 JDK/JRE,並因環境變數的優先順序而使用了不同的版本。

解決方法(Windows/Mac/Linux 通用)

  • 使用指令行 where java (Windows) 或 which java (Mac/Linux) 來確認目前正在使用的 Java 實體。
  • Path (Windows) 或 .zshrc.bash_profile 中明確指定要使用的 Java 路徑。
  • 在 Linux 中利用 update-alternatives 來切換版本。

5.3 在 Eclipse 等 IDE 中出現建置錯誤(例如:「編譯器符合等級不符」)

原因

  • 專案中設定的 Java 版本與 Eclipse 識別到的 JDK 版本不同。

解決方法

  1. 在 Eclipse 的「視窗」>「偏好設定」>「Java」>「已安裝的 JRE」中確認 JDK 的路徑。
  2. 右鍵點擊專案 >「屬性」>「Java 編譯器」,調整「編譯器符合等級」(例如:調整為 Java 17)。

5.4 Java 更新後殘留舊版本

原因

  • Java 的設計不是覆蓋安裝新版本,而是保留舊版本。
  • 多個版本混用可能導致設定錯誤或安全性風險。

解決方法

  • 將不需要的版本從「應用程式與功能」(Windows) 或 /Library/Java/JavaVirtualMachines/ (Mac) 中刪除。
  • 刪除後,再次確認 PathJAVA_HOME 環境變數是否正確更新。

5.5 在 Java Web 應用程式中出現「Unsupported major.minor version」錯誤

原因

  • 用於編譯的 Java 版本與執行環境的 Java 版本不一致(例如:使用 Java 17 建置 → 在 Java 8 中執行)。

解決方法

  • 確認 Java 執行環境的版本,並在編譯時明確指定目標版本(例如:javac -target 1.8)。
  • 或者,升級執行環境端的 Java 版本。

6. 常見問題集 (FAQ)

在此整理了從初學者到進階學習者常遇到的 Java 版本相關問題與解答。主要針對搜尋需求高的問題,盡可能以實用且易懂的方式進行解說。

Q1. JRE 和 JDK 有什麼不同?

A:
JRE (Java Runtime Environment) 是用於「執行」以 Java 開發的應用程式的環境。另一方面,JDK (Java Development Kit) 則是包含用於「開發、編譯、執行」Java 程式所需工具的套件。開發者基本上需要安裝 JDK。

Q2. Java 版本號碼的意義是什麼?

A:
Java 版本會以「Java 17.0.2」等方式表示。

  • 第一個數字「17」是主要版本(Java 17)
  • 「0」是次要版本
  • 「2」代表更新編號

從 Java 9 開始採用新的版本號碼命名規則(時間 기반 發布模式),每半年發布一個新版本。LTS(長期支援)版本尤其受到企業重視(例如:Java 8、11、17、21 等)。

Q3. 安裝多個 Java 版本會有問題嗎?

A:
是的,可以共存多個版本。但是,為了避免使用非預期的版本,透過環境變數或 IDE 設定來明確指定使用的版本非常重要。在 Linux 中是透過 update-alternatives,在 Windows 和 Mac 中則是透過管理 PathJAVA_HOME 來達成。

Q4. 舊的 Java 版本最好解除安裝嗎?

A:
基本上,最好解除安裝不需要的版本。為了降低安全性風險,建議刪除不使用的舊 JRE 或 JDK,並整理環境變數使其與最新版本一致。

Q5. 如何切換 Java 版本?

A:
Windows 的情況:

  • 在環境變數中手動設定 PathJAVA_HOME。切換多個版本時,也可以使用批次檔或專用工具。

Mac/Linux 的情況:

  • .bash_profile.zshrc 中加入 export JAVA_HOME=... 來切換。
  • 此外,在 Mac 中也可以使用 /usr/libexec/java_home -v 版本號 來輕鬆切換。

Q6. Java 更新通知頻繁顯示,我可以忽略嗎?

A:
只要與開發或執行沒有直接關係,短期內忽略更新對運作上的問題不大,但從安全性角度來看,建議及早進行更新。特別是業務用途或 Web 應用程式中使用了 Java 的情況下,強烈建議更新到最新版本。

7. 總結

Java 版本是與開發環境穩定性、應用程式相容性以及安全性息息相關的重要因素。因版本不符而導致的問題或故障並非罕見。

本文系統性地解說了以下重點:

  • Java 版本檢查方法(指令行、GUI、IDE)
  • 各作業系統(Windows、Mac、Linux)的安裝步驟
  • 安全進行更新的方法與注意事項
  • 實際常見問題與解決方法
  • 初學者容易遇到的疑問解答 (FAQ)

正確理解並實踐這些內容,就能對 Java 版本管理更有信心。

特別是對於剛開始學習 Java 或想建立新開發環境的人來說,能順利完成 JDK 的安裝、版本切換與更新,直接關係到技能的提升。

開發環境的整備對程式設計的成果和動力有很大影響。請務必參考本文,建立可靠且最新的 Java 環境。