在命令列下操作環境變數是 Windows 開發、除錯的基本功。本文系統整理 set、setx、註冊表等多種方式,並對比 Linux 差異,附 Java 環境配置實戰案例。
set # 顯示所有變數
set PATH # 查看 PATH
set VAR=value # 設定/修改
set VAR= # 刪除變數
⚠️ 關閉視窗即失效,適合測試或臨時腳本。
setx VAR "value" # 使用者變數
setx VAR "value" /M # 系統變數(需管理員)
修改後需**重新開啟 CMD** 生效。setx 寫入註冊表:
HKCU\EnvironmentHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment路徑同上,修改後需廣播 WM_SETTINGCHANGE 訊息(或重啟 explorer.exe)讓程式感知。適合自動化部署腳本。
Win+Pause → 進階系統設定 → 環境變數。區分「使用者變數」與「系統變數」,前者僅當前使用者生效,後者全域生效。
JAVA_HOME=C:\Java\jdk1.8.0_301
PATH=%JAVA_HOME%\bin;%PATH%
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
驗證:java -version、javac Test.java、java Test 輸出 Hello。
| 操作 | Windows (CMD) | Linux (Bash) |
|---|---|---|
| 顯示所有 | set | export / printenv |
| 查看單一 | set VAR | echo $VAR |
| 臨時設定 | set VAR=val | export VAR=val |
| 永久設定 | setx / 註冊表 | ~/.bashrc / /etc/profile |
setx PATH "C:\Program Files\Java\bin;%PATH%"PATH 過長(>2048 字元)會截斷,建議精簡或用目錄連結。setx /M 失敗。掌握這些技巧,環境變數不再是部署路上的攔路虎。