C:\Program Files\Java\jdk1.8.0_202),改用 %JAVA_HOME%JAVA_HOME,所有腳本自動生效# Windows
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_202
# Linux/macOS (在 ~/.bashrc 或 /etc/profile)
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
JVM 啟動時依據 CLASSPATH 尋找 .class 檔案與 .jar 套件。
. 代表當前工作目錄(Java 1.5+ 預設包含,但建議顯式聲明);,Linux/macOS 用 :# Windows
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;D:\myproject\lib\*
# Linux/macOS
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/opt/myapp/lib/*
# 編譯
javac Hello.java
# 執行(在任何目錄均可)
java Hello
若無 CLASSPATH 或未含 .,執行會拋 NoClassDefFoundError。
若無 PATH,每次執行需輸入完整路徑:%JAVA_HOME%\bin\java。加入 %JAVA_HOME%\bin 後,任意目錄直接輸入 java、javac、jar 即可。
# Windows(在 PATH 變數值最前面新增)
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
# Linux/macOS
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
順序很重要: 放在最前面確保優先使用該 JDK 版本,避免系統預設 Java 干擾。
| 變數 | 必要性 | 典型值 | 驗證指令 |
|---|---|---|---|
| JAVA_HOME | 必設 | C:\Java\jdk1.8.0_202 | echo %JAVA_HOME% |
| PATH | 必設 | %JAVA_HOME%\bin;... | java -version |
| CLASSPATH | 建議設 | .;%JAVA_HOME%\lib\*.jar | javac Test.java && java Test |
"C:\Program Files\Java\jdk..."; 分隔,結尾也建議加 ;javac,開發機必裝 JDKPATH 順序切換版本,或用 jenv/sdkman 管理-cp 參數或 Manifest Class-Path,避免汙染全域環境