星期三, 11月 27, 2024

Installing and Switching Java Versions on Mac OS

Description

記錄Mac OS裝java

Install Java

有兩種方法 

  1. 透過homebrew
    這方法感覺比較好,但未成功,所以請用第二個方法 XD
  2. 下載bin裝法

1.透過homebrew

brew install openjdk@11

切換有兩種方法

A.brew switch

brew switch openjdk@11

但switch似乎被deprecated了,找不到switch指令

brew switch openjdk@11
Error: Unknown command: brew switch

B.jenv

又看有jenv來切換,透過jenv version看起來有切

但實際打java —version,仍然是一樣 所以先放棄了,會的人再教我

2.下載bin裝法 

1.Install 

就笨笨的下載,然後放Users/<your user account>/Library/Java/JavaVirtualMachines/ 用lntellij下載,也是會放這位置,所以可以透過ide做

2.設alias


vim ~/.zshrc

貼以下到最後

# Java Setting
alias java11="export JAVA_HOME=/usr/libexec/java_home -v 11; java -version"
alias java17="export JAVA_HOME=/usr/libexec/java_home -v 17; java -version"
alias java23="export JAVA_HOME=/usr/libexec/java_home -v 23; java -version"

p.s. 透過java_home切換,只能切安裝在Libaray/Java/JavaVirtualMachines裡底下

重啟terminal,就可以切換


# java17
openjdk version "17.0.12" 2024-07-16 LTS
OpenJDK Runtime Environment Corretto-17.0.12.7.1 (build 17.0.12+7-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.12.7.1 (build 17.0.12+7-LTS, mixed mode, sharing)

# java23
openjdk version "23" 2024-09-17
OpenJDK Runtime Environment (build 23+37-2369)
OpenJDK 64-Bit Server VM (build 23+37-2369, mixed mode, sharing)

Question

1: 沒設定PATH也能動?

我發現只有設定JAVA_HOME,但並沒有把${JAVA_HOME}/bin放進PATH變數如下

PATH="${JAVA_HOME}/bin:${PATH}

但是切換仍有用,我看是有PATH有指定/usr/bin,而底下有java

神奇的是他會隨切換版本而改變,這不是什麼神奇功能

2: 那我可以用brew安裝java,再用java_home -v來切嗎? 先說明 透過brew安裝會放在 /opt/homebrew/opt 透過intellij安裝會在/Users/<user>/Library/Java/JavaVirtualMachines/下 結論 我試是不行,因為java_home只能抓到/Library/Java/JavaVirtualMachines/下的java版本

See Also

Reference