正確配置 JDK 環境變數是 Java 開發的第一步,亦是最容易出錯的環節。本文詳細說明 JAVA_HOME、PATH、CLASSPATH 三大變數的作用、配置方法、驗證步驟與常見錯誤排查。
| 變數名 | 作用 | 典型值範例 |
|---|---|---|
| JAVA_HOME | JDK 安裝根目錄,其他工具 (Maven, Tomcat, IDE) 依賴此變數定位 JDK | C:\Java\jdk1.8.0_20 |
| PATH | 系統命令搜尋路徑,加入 %JAVA_HOME%\bin 讓 java/javac 全域可用 | %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin |
| CLASSPATH | 類載入路徑,. 代表當前目錄,含 JDK 核心庫 | .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar |
JAVA_HOME = JDK 安裝路徑Path,在最前面加入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\binCLASSPATH = .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jarsetx JAVA_HOME "C:\Java\jdk1.8.0_20" /M setx Path "%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%Path%" /M setx CLASSPATH ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar" /M
/M 表示設定系統變數,需管理員權限 CMD。
C:\> java -version java version "1.8.0_20" Java(TM) SE Runtime Environment (build 1.8.0_20-b26) Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode) C:\> javac -version javac 1.8.0_20 C:\> java # 顯示用法說明,證明命令識別正常
// Test.java
public class Test {
public static void main(String[] args) {
System.out.println("Hello Java");
}
}
C:\> javac Test.java C:\> java Test Hello Java
| 錯誤現象 | 原因 | 解決 |
|---|---|---|
'javac' 不是內部或外部命令 | PATH 未包含 %JAVA_HOME%\bin | 檢查 PATH 變數順序、拼寫、重開 CMD |
Error: Could not find or load main class | CLASSPATH 缺少 . 或類名含 .class 後綴 | 確保 CLASSPATH 以 . 開頭,運行用 java Test 而非 java Test.class |
| 版本不一致 | 多 JDK 共存,PATH 指向舊版本 | 調整 PATH 順序,或在 IDE/建構工具指定 JDK |
| IDE 無法識別 JDK | IDE 讀取 JAVA_HOME 失敗 | 確認 JAVA_HOME 指向 JDK 而非 JRE 目錄 |
%JAVA_HOME%\src.zip 含核心庫源碼,IDE 關聯後可閱讀實現細節JAVA_HOME 管理多版本CLASSPATH 現代建構工具 (Maven/Gradle) 已不依賴此變數,但傳統命令行編譯仍需標準化環境變數配置能避免 90% 的「環境問題」,為後續框架學習、專案建構奠定穩固基礎。