環境變量是 Java 運行時與開發工具鏈定位 JDK 的橋樑。配置錯誤會導致 java: command not found、javac 編譯失敗、IDE 無法識別 JDK 等高頻問題。本文提供 Windows/Linux/macOS 三平台通用的標準配置模板、驗證腳本與常見誤區排查。
| 變量名 | 作用 | 典型值 | 是否必需 |
|---|---|---|---|
JAVA_HOME | JDK 安裝根目錄(含 bin、lib、include),Maven、Gradle、Tomcat、IDE 皆依賴此變量定位 JDK | C:\Program Files\Java\jdk-17 / /usr/lib/jvm/java-17-openjdk | 必需 |
Path | 系統可執行文件搜索路徑,需包含 %JAVA_HOME%\bin 以便直接運行 java/javac/jar 等命令 | ...;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin | 必需 |
CLASSPATH | 類加載器搜索 .class/.jar 路徑。現代 Java (JDK 1.5+) 通常無需設置,保持為空或 . 即可;歷史項目可能需指定 lib 路徑 | . 或 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar | 一般不需 |
C:\Program Files\Java\jdk-17)JAVA_HOMEC:\Program Files\Java\jdk-17(無尾斜杠)%JAVA_HOME%\bin%JAVA_HOME%\jre\bin(JDK 9+ 無獨立 JRE 可省略)CLASSPATH = .(當前目錄)# ~/.bashrc 或 ~/.zshrc 末尾追加 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
| 方案 | 平台 | 核心命令 | 優點 |
|---|---|---|---|
| SDKMAN! | Linux/macOS/WSL | sdk install java 17.0.9-tem sdk use java 17.0.9-tem | 自動管理 JAVA_HOME/PATH,切換極快 |
| jEnv | Linux/macOS | jenv add /path/to/jdk jenv global 17 | 輕量、Shell 無關 |
| Windows 手動切換 | Windows | 修改 JAVA_HOME 指向不同目錄 | 無額外工具 |
| Docker 容器化 | 跨平台 | docker run -it --rm eclipse-temurin:17-jdk | 環境完全隔離,CI/CD 一致 |
#!/bin/bash
# save-as: verify-java-env.sh
echo "=== JDK 環境驗證 ==="
echo "JAVA_HOME = $JAVA_HOME"
echo "PATH 包含 java: $(which java 2>/dev/null || echo '未找到')"
echo ""
java -version 2>&1 | head -1
javac -version 2>&1
echo ""
echo "=== 關鍵工具檢查 ==="
for tool in jar javadoc jps jstack jmap jcmd; do
if command -v $tool &>/dev/null; then
echo "✓ $tool 可用"
else
echo "✗ $tool 缺失 (可能是 JRE 而非 JDK)"
fi
done
javac、tools.jar,Maven 編譯失敗。必須下載 JDK(Oracle JDK / Eclipse Temurin / Azul Zulu / Amazon Corretto)。C:\Program Files\Java\jdk-17\bin,升級 JDK 後失效。必須用 %JAVA_HOME%\bin。.**。C:\Program Files\Java\jdk 17 需在腳本中用雙引號包裹。jdk-env.sh / jdk-env.bat,新員工入職一鍵執行actions/setup-java@v4 with: java-version: '17' distribution: 'temurin'java -version,防止版本漂移標準化的 JDK 環境變量配置,是 Java 開發體驗流暢的基石。掌握「JAVA_HOME 指向 JDK 根目錄、Path 引用 %JAVA_HOME%\bin、CLASSPATH 保持極簡」三原則,配合 SDKMAN! 等版本管理工具,徹底告別環境配置焦慮。