Centos7安装多个JDK

🍄记录下博主在生产环境中遇到一个比较奇怪的问题,一个Centos7上需要安装两个不同版本的JDK,一个是OpenJDK,另一个是Oracle JDK。

名称 版本 备注
系统 Centos7
环境 源码,yum
OpenJDK 1.8.0_382 本次系统默认安装了该版本
Oracle JDK 1.8.0_202

1.🏀登录Linux系统执行命令查看当前系统安装JDK的版本

java -version

2.🏈下载和上传Oracle JDK到对应服务器上并解压到/usr/local​目录,下载地址链接在文章顶部列表中。

sudo tar zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local

3.⚽为新的 JDK 设置 JAVA_HOME​ 和更新 PATH​ 环境变量。编辑 /etc/profile​ 或您的用户的 ~/.bashrc​ 文件,并添加以下行:

export JAVA_HOME=/usr/local/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH

4.⚾修改完上面两个文件后保存并关闭文件后,运行以下命令以应用更改:

source /etc/profile

source ~/.bashrc

5.🥎运行 java -version​ 和 javac -version​ 来验证新安装的 Oracle JDK 版本,然后使用 update-alternatives​ 命令来管理和切换不同的 JDK 版本,这个工具允许您在多个安装的 Java 版本之间选择默认版本,以下是使用 update-alternatives​ 来管理 JDK 版本的步骤。

对于每个 JDK 版本,您需要使用 update-alternatives​ 将其 java​ 和 javac​ 命令注册为可选项。例如,如果您安装了 JDK 到 /usr/local/jdk1.8.0_202​,运行以下命令:

sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_202/bin/java 100
sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0_202/bin/javac 100

PS:在这里,100​ 是优先级。您可以根据需要为不同的 JDK 版本设置不同的优先级。

6.🎳使用以下命令配置默认的 java​ 和 javac​:

sudo update-alternatives --config java
sudo update-alternatives --config javac

image

1.在Enter to keep the current selection[+], or type selection number:中输入想要使用JDK的序号再按回车键即可
2.再次执行java -version确认JDK版本

🎃这种方法的好处是,它允许您在系统级别轻松切换 JDK 版本,而无需修改 JAVA_HOME​ 环境变量。当您安装新版本的 JDK 或需要在多个版本之间切换时,这是一种非常方便的方法,请注意,对于不同的 Linux 发行版,update-alternatives​ 的确切命令和路径可能有所不同,所以请根据您的具体系统进行调整。