首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Windows/Linux 雙平台 JDK 環境變量配置標準化指南 (JDK 8/11/17/21 LTS)

     編輯:Java 相關知識

規範配置 JAVA_HOME、PATH、CLASSPATH 是 Java 開發基礎。本文提供 Windows (GUI/CMD/PowerShell) 與 Linux (bash/zsh/profile) 統一最佳實踐,支援多版本共存與快速切換。

核心原則

  • JAVA_HOME 指向 JDK 安裝根目錄 (含 bin、lib、include)。
  • PATH 僅追加 %JAVA_HOME%\bin (Win) 或 $JAVA_HOME/bin (Linux),不要 把具體版本路徑硬編碼在 PATH。
  • CLASSPATH 強烈建議不設定 全域值。Maven/Gradle/IDE 自動構建 classpath;舊版教程保留的 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 在 JDK 9+ 已無效 (模組化移除 dt.jar/tools.jar)。

Windows 配置

圖形介面 (永久生效)

  1. Win+S 搜尋「編輯系統環境變數」→ 環境變數。
  2. 系統變數 → 新建:JAVA_HOME = C:\Program Files\Java\jdk-21 (實際安裝路徑)。
  3. 編輯 Path → 新增 %JAVA_HOME%\bin → 移至頂部優先。
  4. 刪除舊版 Java 路徑 (如 C:\ProgramData\Oracle\Java\javapath)。
  5. 重啟終端驗證:java -version、echo %JAVA_HOME%。

命令列臨時/腳本配置

rem CMD 臨時
set JAVA_HOME=C:\Java\jdk-17
set PATH=%JAVA_HOME%\bin;%PATH%

rem PowerShell 當前會話
$env:JAVA_HOME="C:\Java\jdk-17"
$env:PATH="$env:JAVA_HOME\bin;$env:PATH"

rem 永久 (需管理員)
setx JAVA_HOME "C:\Java\jdk-17" /M
setx PATH "%JAVA_HOME%\bin;%PATH%" /M

Linux/macOS 配置

單用戶 (~/.bashrc / ~/.zshrc / ~/.profile)

export JAVA_HOME=/usr/lib/jvm/java-21-openjdk  # 實際路徑用 `readlink -f $(which java) | sed 's:/bin/java::'` 獲取
export PATH=$JAVA_HOME/bin:$PATH
# 不要 export CLASSPATH

修改後 source ~/.bashrc 或重新登入。

系統級 (/etc/profile.d/java.sh)

# 需 root
cat > /etc/profile.d/java.sh <<'EOF'
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
EOF
chmod +x /etc/profile.d/java.sh

多版本共存與快速切換

方案平台用法
SDKMAN!Linux/macOS/WSLsdk install java 21.0.2-tem / sdk use java 17.0.10-tem / sdk default java 21.0.2-tem
jEnvLinux/macOSjenv add /path/to/jdk / jenv global 17 / jenv local 11 (專案級)
Chocolatey + ojdkbuildWindowschoco install openjdk17 / choco install openjdk21 → 用 setx JAVA_HOME 切換
手動解壓 + 符號鏈接全平台ln -sfn /opt/jdk-21 /opt/java_home → export JAVA_HOME=/opt/java_home

驗證清單

java -version          # 顯示預期版本
javac -version         # 編譯器同版本
echo $JAVA_HOME        # 指向正確根目錄
ls $JAVA_HOME/bin      # 含 java, javac, jar, jlink, jmod...
java --list-modules    # JDK 9+ 模組系統正常

常見坑位

  • Windows 安裝程式自動在 Path 插入 C:\ProgramData\Oracle\Java\javapath 指向舊版 → 必須刪除或移至底部。
  • Linux alternatives / update-alternatives 管理系統預設 java,但 不修改 JAVA_HOME,IDE/建構工具仍需顯式配置。
  • JDK 9+ 移除 rt.jar/tools.jar,舊教程的 CLASSPATH 設定會導致 ClassNotFoundException。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved