最近打算研究一下elasticsearch
,看一下某些代码实现,于是拉了一下代码。吼,这个项目还真是大,拉代码就挺久。然后用idea
打开,发现master
竟然要jdk 11
,切到6.5
分支竟然也要jdk 10
,自己的电脑装的是jdk8
,瞬间感觉有点xxx
。于是查了一下mac
下怎么配置多个jdk
。
准备工作
如果没有homebrew
,先装一下homebrew
。
第一步
brew install jenv
安装jenv
,不要问我这是什么,装了就行了。
将下面的命令加到.bash_profile
最下面,默认我们打开bash
时,会配置这个文件的内容。不过一般mac
都用zsh
,所以把下面的命令加到.zshrc
最下面。
eval "$(jenv init -)"
第二步
brew tap caskroom/versions
第三步
brew cask install java
第四步
brew cask install java11
#brew cask install java7
#brew cask install java8
安装你需要的jdk
版本。
第五步
ls -la /Library/Java/JavaVirtualMachines
这个命令可以查看安装的所有jdk
。
第六步
配置jenv
和jdk
,注意替换下面命令里的jdk
版本,版本从第五步的结果里能够看到。
jenv add /Library/Java/JavaVirtualMachines/jdk版本1/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk版本2/Contents/Home
第七步
完成上面的指令后,已经可以用下面的命令,查看所有安装的jdk
版本了。
jenv versions
通过下面的命令切换jdk
版本,xx
就是上面的命令列出的jdk
版本。
jenv global XX
通过java -version
就能发现,切换jdk
版本成功了。但是jenv
并不会修改JAVA_HOME
值,所以我们还需要添加下面的配置到.bash_profile
或者.zshrc
,放在第一步配置的内容下面
export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"
每次使用jenv
切换jdk
版本之后,JAVA_HOME
其实还是没有改变,需要我们退出terminal
,然后重新打开一个新的就行了。因为每次打开新的窗口,就会调用配置的环境命令~
相关参考
https://stackoverflow.com/questions/26252591/mac-os-x-and-multiple-java-versions
https://github.com/jenv/jenv/issues/212#issuecomment-446258279
https://github.com/jenv/jenv/issues/44#issuecomment-39356954