安装多版本的JDK
1. 问题发生
在某些项目或许只支持java8,但是如果是一些新项目,或使用了springboot3.0以上的项目,jdk为17或者更高
2. 问题解决
2.1 安装包下载(pkg/dmg)
Java8: Java Downloads | Oracle
Jdk17: Java Downloads | Oracle
位置
2.2 配置
##java env export JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home -v 1.8"export JAVA_17_HOME="/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home -v 17"alias java8='export JAVA_HOME=$JAVA_8_HOME'alias java17='export JAVA_HOME=$JAVA_17_HOME'JAVA_HOME=$JAVA_8_HOMEPATH=$JAVA_HOME/bin:$PATH:.CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.export JAVA_HOMEexport PATHexport CLASSPATH
2.3 测试使用
结论:能用,很表面,但不是很好用!eg: 再开一个terminal测试便知
结论是又变成jdk17!
2.4 修正
### JDK defexport JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home "export JAVA_17_HOME="/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home"### aliasalias java8='echo "export JAVA_HOME=$JAVA_8_HOME" >> ~/.zshrc && source ~/.zshrc && echo "switch to Java8"'alias java17='echo "export JAVA_HOME=$JAVA_17_HOME" >> ~/.zshrc && source ~/.zshrc && echo "switch to Java17"'
新问题出现: 在~/.zshrc中,每切换一次jdk版本,就会增加一行记录
# 不备份 但mac默认备份,若不备份还要加上下方的“” 不然会报错sed -i "" '/^export JAVA_HOME=/d' 1.txt# 备份sed -i ".bak" '/^export JAVA_HOME=/d' 1.txt
整理如下
### JDK definition export JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home"export JAVA_17_HOME="/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home"THE_SOURCE=~/.zshrc### aliasalias java8='sed -i "" "/^export JAVA_HOME=/d" $THE_SOURCE && echo "export JAVA_HOME=$JAVA_8_HOME" >> ~/.zshrc && source ~/.zshrc && echo "switch to Java8"'alias java17='sed -i "" "/^export JAVA_HOME=/d" $THE_SOURCE && echo "export JAVA_HOME=$JAVA_17_HOME" >> ~/.zshrc && source ~/.zshrc && echo "switch to Java17"'
完成~~
2.5 引导
node 多版本 eg : nvm (brew install nvm) 、
mysql (5.7 or 8.0):本地 + docker or linux
brew + 本地