在 Mac 開發環境中,常會安裝多個 JDK 版本(如 Java 8、11、17 等)。預設情況下,系統可能仍指向舊版本,導致專案編譯或執行時版本不符。本文將示範如何臨時切換與永久設定 Java 預設版本,並說明常見陷阱。
打開終端機,輸入:
java -version
若輸出顯示 1.7.0_71,表示目前預設為 Java 7。
假設已安裝 JDK 1.8.0_40,路徑為 /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/,執行:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/
export PATH=$JAVA_HOME/bin:$PATH
再次執行 java -version 即可看到版本已切換為 1.8.0_40。
根據使用的 Shell 選擇對應檔案:
~/.zshrc~/.bash_profile 或 ~/.bashrc範例(以 zsh 為例):
echo 'export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/' >> ~/.zshrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
重新開啟終端機或執行 source ~/.zshrc 後,java -version 將永久顯示指定版本。
/usr/libexec/java_home 動態切換macOS 內建工具可列出所有已安裝 JDK:
/usr/libexec/java_home -V
若要永久指向最新的 Java 17,可在設定檔加入:
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH
這樣升級 JDK 時無需手動修改路徑。
source 了正確的設定檔,或重開終端機。透過設定 JAVA_HOME 與 PATH 環境變數,即可輕鬆控制 Mac 上的 Java 預設版本。若頻繁切換版本,強烈建議安裝版本管理工具,提升開發效率。