初學 Java 時,最容易卡關的就是環境變數設定。照著教學做卻不知所以然,導致後續除錯困難。本文從作業系統角度深入淺出,解析 JAVA_HOME、PATH、CLASSPATH 的角色與設定邏輯。
環境變數是作業系統用來定義執行環境參數的動態鍵值對。程式啟動時會讀取這些變數,決定去哪裡找執行檔、函式庫、設定檔等資源。
C:\Program Files\Java\jdk-17),該目錄下包含 bin、lib、jre 等資料夾。%JAVA_HOME%,Linux/macOS 用 $JAVA_HOME。%JAVA_HOME%\bin(Windows)或 $JAVA_HOME/bin(Linux/macOS)。javac HelloWorld.java 時,OS 會依序掃描 PATH 中的目錄,找到 javac.exe 並執行。.class 檔案與 JAR 函式庫。.;%JAVA_HOME%\lib(Windows)或 .:$JAVA_HOME/lib(Linux/macOS)。. 代表「目前工作目錄」,確保專案自訂類別能被載入;%JAVA_HOME%\lib 則涵蓋 JDK 核心類別庫(如 tools.jar、dt.jar)。| OS | JAVA_HOME | PATH 追加 | CLASSPATH |
|---|---|---|---|
| Windows | C:\Program Files\Java\jdk-17 | %JAVA_HOME%\bin | .;%JAVA_HOME%\lib |
| Linux/macOS | /usr/lib/jvm/jdk-17 | $JAVA_HOME/bin | .:$JAVA_HOME/lib |
Progra~1)。java -version、javac -version、echo %JAVA_HOME%。理解這三個變數的底層運作,不只能一次設定成功,未來遇到「找不到 javac」、「類別載入失敗」等問題也能快速定位根因。