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

JDK 環境變量配置教程 (Windows/Linux/macOS 通用)

     編輯:Java 相關知識

核心三大環境變量

變量名作用典型值範例
JAVA_HOMEJDK 安裝根目錄,其他工具 (Maven/Gradle/Tomcat) 依賴此變量定位 JDKWindows: D:\Java\jdk-17
Linux/macOS: /usr/lib/jvm/java-17-openjdk
PATH系統可執行文件搜索路徑,需包含 %JAVA_HOME%\bin (Win) 或 $JAVA_HOME/bin (Unix)追加 %JAVA_HOME%\bin
CLASSPATH類加載路徑 (現代項目多由構建工具/IDE 管理,較少手動配置).;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (Win)

Windows 圖形界面配置步驟

  1. 右鍵「此電腦」→「屬性」→「高級系統設置」→「環境變量」
  2. 系統變量區 → 「新建」 → 變量名:JAVA_HOME,值:D:\Java\jdk-17 (你的實際安裝路徑)
  3. 編輯 Path (或 PATH) → 「新建」 → %JAVA_HOME%\bin → 移至頂部 (優先使用)
  4. (可選) 新建 CLASSPATH → 值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
  5. 點擊「確定」層層保存

命令行驗證

> java -version
java version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+13-LTS-241)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+13-LTS-241, mixed mode, sharing)

> javac -version
javac 17.0.10

> echo %JAVA_HOME%
D:\Java\jdk-17

Linux/macOS 終端配置 (永久生效)

1. 查找 JDK 安裝路徑

# Debian/Ubuntu
/usr/lib/jvm/java-17-openjdk-amd64

# CentOS/RHEL
/usr/lib/jvm/java-17-openjdk

# macOS (Homebrew)
/opt/homebrew/Cellar/openjdk/17/libexec/openjdk.jdk/Contents/Home

# 通用查找
readlink -f $(which java) | sed 's:/bin/java::'

2. 編輯配置文件

# 單用戶:~/.bashrc 或 ~/.zshrc
# 全域:/etc/profile

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
# export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  # 可選

# 立即生效
source ~/.bashrc

3. 驗證

$ java -version
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+7-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17.0.10+7-Ubuntu-120.04, mixed mode, sharing)

$ echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk

多版本共存管理方案

Windows:手動切換 JAVA_HOME

# 安裝多版本於不同目錄
# D:\Java\jdk-8
# D:\Java\jdk-11
# D:\Java\jdk-17

# 切換腳本 switch-java.bat
@echo off
set JAVA_HOME=D:\Java\jdk-%1
set PATH=%JAVA_HOME%\bin;%PATH%
echo Switched to JDK %1
java -version

Linux/macOS:SDKMAN (推薦)

# 安裝 SDKMAN
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

# 列出可用版本
sdk list java

# 安裝多版本
sdk install java 17.0.10-tem
sdk install java 21.0.2-tem
sdk install java 8.0.402-tem

# 切換版本 (當前終端)
sdk use java 17.0.10-tem

# 設定預設版本
sdk default java 21.0.2-tem

macOS 專用:jEnv + Homebrew

brew install jenv openjdk@17 openjdk@21
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc

jenv add /opt/homebrew/Cellar/openjdk@17/17.0.10/libexec/openjdk.jdk/Contents/Home
jenv add /opt/homebrew/Cellar/openjdk@21/21.0.2/libexec/openjdk.jdk/Contents/Home

jenv global 17.0.10  # 設定全域版本
jenv local 21.0.2    # 專案級版本 (生成 .java-version)

IDE 整合配置

  • IntelliJ IDEA:File → Project Structure → SDKs 添加 JDK,項目級 Project SDK 選擇對應版本
  • Eclipse:Window → Preferences → Java → Installed JREs 添加 JDK,勾選對應版本
  • VS Code:安裝 Extension Pack for Java,settings.json 配置 "java.home": "/path/to/jdk"

常見問題排查

現象可能原因解決
java -version 顯示舊版本PATH 順序舊路徑在前將 %JAVA_HOME%\bin 移至 PATH 最前
javac: command not found未配置 PATH 或 JRE 而非 JDK確認安裝 JDK 並配置 bin 目錄
IDE 報錯 "Invalid JDK"IDE 綁定路徑與環境變量不一致IDE 內重新指向 JAVA_HOME 路徑
Linux 修改 profile 不生效未 source 或登錄 Shell 類型不匹配source ~/.bashrc 或重新登錄
CLASSPATH 導致類衝突手動配置污染類加載刪除 CLASSPATH,交給 Maven/Gradle/IDE 管理

最佳實踐清單

  1. 只配 JAVA_HOME + PATH:CLASSPATH 現代開發基本不需要手動設定
  2. 使用版本管理工具:SDKMAN / jEnv / 手動腳本,避免污染系統環境
  3. 專案級鎖定版本:.java-version / .sdkmanrc / pom.xml <maven.compiler.source>
  4. 容器化部署:Dockerfile FROM eclipse-temurin:17-jdk 彌補環境差異
  5. 定期更新:關注 LTS 版本 (8, 11, 17, 21) 安全補丁,及時升級

總結

JDK 環境變量配置核心在於 JAVA_HOME 指向 JDK 根目錄、PATH 包含 bin 目錄。Windows 走圖形界面,Linux/macOS 編輯 Shell 配置文件。強烈建議採用 SDKMAN 或 jEnv 管理多版本,專案級鎖定 JDK 版本,IDE 與構建工具同步配置。遵循「最小配置、版本隔離、容器化交付」原則,徹底消除「在我機器上能跑」的環境差異問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved