java8与java11共存
阅读 2.2k
在实际开发中,我们一般会偏向用稳定的一个JDK版本,比如JDK8,而有时又为了学习Java中的新功能,需要安装更新的JDK,比如JDK11。本篇介绍如何在macOS Mojave
和CentOS 7.6
中同时安装多个版本的JDK。
macOS Mojave
首先,需要下载两个版本的JDK并安装好,然后,在~/.bash_profile
中,添加如下设置:
# java
JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/home"
JAVA_11_HOME="/Library/Java/JavaVirtualMachines/jdk11.0_12.jdk/Contents/home"
alias jdk8="export PATH=$JAVA_8_HOME/bin:$PATH"
alias jdk11="export PATH=$JAVA_11_HOME/bin:$PATH"
export PATH="$JAVA_8_HOME/bin:$PATH"
上面定义了两个变量:JAVA_8_HOME
和JAVA_11_HOME
,同时,自定了两个命令jdk8
和jdk11
,然后,就可以通过这两个命令来切换不同的Java版本了,比如,需要Java8版本,就输入jdk8,需要Java11版本,就输入jdk11,是不是很方便呢?
注意:如果MacOS使用的shell是zsh
,那么需要在 ~/.zshrc
中进行设置。
CentOS 7.6
在CentOS 7中,下载好两个版本的压缩包,将其解压,得到如下两个目录:
- /usr/local/src/jdk1.8.0_191
- /usr/local/src/jdk-17.0.11
再进行设置:
vim ~/.bash_profile
添加如下java相关设置即可
设置完成后,输入如下命令让配置文件立刻生效:
source ~/.bash_profile
可以通过
echo $PATH
来查看是否为自己想要的PATH变量结果。
要注意顺序问题,$JAVA_17_HOME/bin
要放入$PATH
的前面,因为默认$PATH中包含/usr/local/bin,如果/usr/local/bin已经有java相关命令,那么会导致优先使用/usr/local/bin/java。
这样,默认使用jdk17,如果需要切换到jdk8,在shell中输入jdk8即可。
小结
除此方法之外,还可以使用Docker
来满足同样的要求,更重要的一点是,它是一种跨平台
的方案,无论Windows,Linux还是MacOS,都可以使用相同的Docker设置来满足这一点要求。
最后编辑于: 2024-06-24