| 變數 | 作用對象 | 搜尋目標 | 優先順序 |
|---|---|---|---|
| PATH | 作業系統 Shell (cmd/bash) | 可執行檔 (.exe, .bat, .sh) | 當前目錄 → PATH 目錄順序 |
| CLASSPATH | JVM 類別載入器 | 類別檔 (.class), JAR 包 | 僅搜尋 CLASSPATH 指定路徑 |
在命令列輸入 java、javac、jar 等指令時,Shell 需知道可執行檔位置。
D:\Java\jdk1.8\bin\javac.exejavac,Shell 依序搜尋 PATH 目錄,找到首個匹配即執行建議設定:將 %JAVA_HOME%\bin 加入 PATH 最前端,確保優先使用指定 JDK 版本。
JVM 執行程式時,類別載入器需定位 .class 檔案。
關鍵點:設定 CLASSPATH 後,必須顯式加入 . (當前目錄),否則專案根目錄下的類別將無法載入。
JAVA_HOME=D:\Program Files\Java\jdk1.8.0_202
PATH=%JAVA_HOME%\bin;%PATH%
CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
.:當前目錄(必須)tools.jar:JDK 工具類(編譯器、文檔生成等)dt.jar:運行時環境類別(Swing、Applet 等).:導致 java HelloWorld 提示找不到主類別JAVA_HOME 參考java -cp 或 -jar 顯式指定類別路徑,避免環境變數汙染C:\> javac -version
javac 1.8.0_202
C:\> java -version
java version "1.8.0_202"
C:\> echo %CLASSPATH%
.;D:\Java\jdk1.8.0_202\lib\tools.jar;D:\Java\jdk1.8.0_202\lib\dt.jar