环境
MacBook pro : macOS 12
安装步骤
执行安装命令
yutao@MacBook-Pro ~ % brew install openjdk@11
# 根据提示,我们需要更新Homebrew
Updating Homebrew...
Warning: You are using macOS 12.
We do not provide support for this pre-release version.
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Twitter or any other official channels. You are responsible for resolving
any issues you experience while you are running this
pre-release version.
Error: openjdk@11: no bottle available!
You can try to install from source with:
brew install --build-from-source openjdk@11
Please note building from source is unsupported. You will encounter build
failures with some formulae. If you experience any issues please create pull
requests instead of asking for help on Homebrew's GitHub, Twitter or any other
official channels.
更新 Homebrew
cd "$(brew --repo)"
git fetch
git reset --hard origin/master
brew update: 执行时间较长,耐心等待
brew upgrade
再次执行安装命令
yutao@MacBook-Pro ~ % brew install openjdk@11
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/openjdk%4011-11.0.15.monterey.bott
######################################################################## 100.0%
==> Pouring openjdk@11-11.0.15.monterey.bottle.1.tar.gz
==> Caveats
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
openjdk@11 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have openjdk@11 first in your PATH, run:
echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc
For compilers to find openjdk@11 you may need to set:
export CPPFLAGS="-I/usr/local/opt/openjdk@11/include"
==> Summary
🍺 /usr/local/Cellar/openjdk@11/11.0.15: 678 files, 299.3MB
==> Running `brew cleanup openjdk@11`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
根据上述提示信息,安装成功
安装软链接
根据输出的安装信息的提示,为了让 Java wrappers 找到 JDK,需要手动建立链接
yutao@MacBook-Pro ~ % sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
环境变量配置支持jdk8与jdk11快速切换
macos中可以使用 /usr/libexec/java_home
命令,其支持动态查找 Java Home,默认为最新版本 JDK
的 Java Home
,类似下文中:export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
配置 $JAVA_HOME
环境变量,找到 ~/.bash_profile
~/.bashrc
, ~/.zshrc
等配置文件中的任意一个,添加下面这行代码:
macos系统版本10以后,建议使用
~/.zshrc
,对应的是zsh
~/.bash_profile 对应的是bash,而macos系统已使用zsh啦。
# 配置Java11的家目录
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
# 配置Java8的家目录
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
# 配置别名,方便快速切换
alias java8='export JAVA_HOME=$JAVA_8_HOME'
# 配置别名,方便快速切换
alias java11='export JAVA_HOME=$JAVA_11_HOME'
# 我习惯性会配置这个,实践也发现,不加会切换失败
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
验证
yutao@MacBook-Pro ~ % java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment Homebrew (build 11.0.15+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.15+0, mixed mode)
# 切换
yutao@MacBook-Pro ~ % java8 && source ~/.bash_profile ## &&表示前一条命令执行成功时,才执行后一条命令
yutao@MacBook-Pro ~ % java -version
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
切换
经过我反复测试,切换时一定要加上&& source ~/.bash_profile
。
即:
①切换Java11:java11 && source ~/.bash_profile
。
①切换Java8:java8 && source ~/.bash_profile
。
yutao@MacBook-Pro ~ % java11 && source ~/.bash_profile
WARNING: this script is deprecated, please see git-completion.zsh
yutao@MacBook-Pro ~ % java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment Homebrew (build 11.0.15+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.15+0, mixed mode)
参考地址