java8与java11共存

阅读 2.2k
标签: Java

在实际开发中,我们一般会偏向用稳定的一个JDK版本,比如JDK8,而有时又为了学习Java中的新功能,需要安装更新的JDK,比如JDK11。本篇介绍如何在macOS MojaveCentOS 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_HOMEJAVA_11_HOME,同时,自定了两个命令jdk8jdk11,然后,就可以通过这两个命令来切换不同的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

评论(0条)

(必填)
复制成功