安装多版本的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 + 本地