前言
熟悉前端的同学都知道如果想快速切换node版本可以用 nvm 这样的包管理工具,那么对于Java开发同学来讲,有时候运行不同的项目需要不同的JDK版本,那么有什么方式可以管理不同的JDK版本呢 ? 一句话回答那就是有 。这里先卖个关子,咱们先从如何快速安装JDK说起,通过 **brew **可以快速安装指定版本的JDK 。
这篇文章计划从三个部分来讲:【这里以Mac电脑为例】
- 如何安装brew
- 如何通过brew安装JDK
- 通过一行命令切换JDK版本
1、如何安装brew
1.1 brew 是什么 ?
有同学可能会有疑问这个brew是什么呢,下面放上 官方的地址: https://brew.sh/ (opens in a new tab) ,打开网址会看到下面这样一个页面,用官方的话说 : The Missing Package Manager for macOS (or Linux) 用于MacOS(或Linux)的缺失的软件包管理器
1.2 安装brew
1.2.1 官方提供安装方式
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
有些同学可能会用官方提供的方式安装,但一般情况下会安装失败,爆下面这个错 Failed to connect to raw.githubusercontent.com port 443: Connection refused
1.2.2 通过开源项目安装
第三方开源项目地址:https://gitee.com/cunkai/HomebrewCN (opens in a new tab) 使用如下命令:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
可以根据实际需求选择源,这里以中科大为例,安装成功后 按照提示 刷新下配置文件或者重启下终端
1.2.3 常用brew命令:
本地软件库列表:brew ls 查找软件:brew search google(其中google可替换为要查找的软件关键字, 比如QQ) 查看brew版本:brew -v
更新brew版本:brew update 卸载命令:brew uninstall
2、如何通过brew安装JDK
2.1 旧版本(不推荐)
https://github.com/AdoptOpenJDK/homebrew-openjdk (opens in a new tab) ,官方提示已被正式废弃了,推荐使用temurin,并且在2021-08-01(2021年8月1日)之后将不再得到任何更新。请相应调整你的使用。
2.1.1 搜索jdk
brew search jdk
如果你获取的列表中没有 adoptopenjdk8 等,请执行 brew tap adoptopenjdk/openjdk。brew只收录了adoptopenjdk最后的版本,一些过期的版本,交由adoptopenjdk自己管理。而 brew tap adoptopenjdk/openjdk,则是拉取adoptopenjdk自管理包的信息。
brew tap adoptopenjdk/openjdk
2.1.2 安装 adoptopenjdk8
brew install --cask adoptopenjdk8
2.1.3 查看 jdk 版本
java -version
2.1.4 查看jdk安装路径
/usr/libexec/java_home -V
环境变量
echo $JAVA_HOME$
2.1.5 卸载jdk
brew uninstall --cask adoptopenjdk8
2.2 新版本(强烈推荐)
AdoptOpenJDK 已被弃用,并从 Adoptium 过渡到 Eclipse Temurin The new website for this project is here called Adoptium (opens in a new tab) . In Homebrew, the package that installs the new AdoptOpenJDK is here named temurin (opens in a new tab). 这个项目的新网站在这里被称为Adoptium。在Homebrew中,安装新的AdoptOpenJDK的包在这里名为temurin。 网址:https://formulae.brew.sh/cask/temurin (opens in a new tab)
2.2.1 安装最新版本
brew install --cask temurin
2.2.2 安装指定版本jdk
brew tap homebrew/cask-versions # 先执行
brew install --cask temurin17 # jdk17
brew install --cask temurin8 # jdk8
/usr/libexec/java_home -V
2.3 异常处理
问题1:
Error: Cask adoptopenjdk8 exists in multiple taps: homebrew/cask-versions/adoptopenjdk8 adoptopenjdk/openjdk/adoptopenjdk8
sudo rm -rf /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions/Casks/adoptopenjdk8.rb
注:这里主要讲述如何通过 brew 安装JDK ,如有安装其它软件教程需求,欢迎评论留言
3、通过一行命令切换JDK版本
bash 、zsh 这里不过多讲述了,如需要的同学可以自行了解,或者在文章下方评论留言 实际操作以电脑环境为主
3.1 环境配置介绍
Mac系统默认使用bash作为终端,但是新的Mac系统已经默认使用zsh,查看方式:
cat /etc/shells
3.2 bash与zsh切换命令
chsh -s /bin/zsh
chsh -s /bin/bash
3.1 bash
如果是bash,则在Terminal输入以下指令
touch .bash_profile 【如果有不需要创建】
open -e ~/.bash_profile 【弹窗编辑】
vim .bash_profile 【命令行编辑】
3.2 zsh
如果是zsh,则在Terminal输入以下指令
touch .zprofile 【如果有不需要创建】
open -e ~/.zprofile 【弹窗编辑】
vim .zprofile 【命令行编辑】
之后会弹出一个文本,接下来就是输入代码的时候了 这里配置要切换的JDK版本分别是JDK8 和JDK17,所以在文本里输入以下代码
# Configure JDK
# JDK 8
export JAVA_8_HOME=`/usr/libexec/java_home -v 8`
# JDK 17
export JAVA_17_HOME=`/usr/libexec/java_home -v 17`
# Alias
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk17="export JAVA_HOME=$JAVA_17_HOME"
export JAVA_HOME=$JAVA_17_HOME
PATH="${JAVA_HOME}:${PATH}"
export PATH
export JAVA_HOME=$JAVA_17_HOME # 这一行代码是将默认的JDK版本设置为JDK17
jdk8
jdk17
这两个 Alias(别名) 则是我们切换JDK版本的指令
之后按保存并关闭该文本,回到Terminal,并输入以下指令使刚才的代码生效
source ~/.bash_profile # 刷新配置
或者
source .zprofile
下面进行测试
3.3 on-my-zsh 配置
在 .zshrc 文件添加 以下配置
# java
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_17_HOME=$(/usr/libexec/java_home -v17)
alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk17='export JAVA_HOME=$JAVA_17_HOME'
export JAVA_HOME=$JAVA_17_HOME
export PATH=$PATH:$JAVA_HOME/bin
$ vim .zshrc
刷新配置 source .zshrc
$ source .zshrc
总结
文章到这里就结束了,通过这篇文章我们了解到 如何安装brew以及brew是什么、如何通过brew安装JDK、通过一行命令切换JDK版本 等。通过快速切换 JDK 版本可以更方便我们日常开发工作。