02.Linux下安装和切换不同版本的JDK(通过 alternatives )

简介

本篇文章将介绍在线和通过 alternatives 离线安装openjdk,以及切换合适版本的jdk。
通过 alternatives 有利于对所有注册的jdk版本进行统一管理。
操作演示环境为CentOS系统,其他操作系统例如openEuler也可作为参考。

操作系统版本如下

名称版本
CentOS7.6+

1.1 在线安装

搜索yum源库中的openjdk

[root@k8s-node02 ~]# yum search openjdk
已加载插件:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
 * elrepo: mirrors.tuna.tsinghua.edu.cn
===================================================================== N/S matched: openjdk =====================================================================
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without 

选择要使用的版本安装

[root@k8s-node02 ~]# yum install java-1.8.0-openjdk
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo: mirrors.tuna.tsinghua.edu.cn
base                                                                                                                                     | 3.6 kB  00:00:00
docker-ce-stable                                                                                                                         | 3.5 kB  00:00:00
elrepo                                                                                                                                   | 3.0 kB  00:00:00
extras                                                                                                                                   | 2.9 kB  00:00:00
updates                                                                                                                                  | 2.9 kB  00:00:00
(1/4): docker-ce-stable/7/x86_64/primary_db                                                                                              | 116 kB  00:00:00
(2/4): extras/7/x86_64/primary_db                                                                                                        | 250 kB  00:00:00
(3/4): updates/7/x86_64/primary_db                                                                                                       |  22 MB  00:00:11
(4/4): elrepo/x86_64/primary_db                                                                                                          | 350 kB  00:00:18
正在解决依赖关系
--> 正在检查事务

检查是否安装成功

[root@node03 ~]# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)
[root@node03 ~]#
    

1.2 离线安装

下载离线包

Oracle官网下载JDK

在这里插入图片描述

解压JDK

下载后上传到服务器,解压至 /usr/lib/jvm/ 目录

[root@k8s-node02 ~]#  tar -xzvf jdk-20_linux-x64_bin.tar.gz -C /usr/lib/jvm
jdk-20.0.2/LICENSE
jdk-20.0.2/README
jdk-20.0.2/bin/jar
jdk-20.0.2/bin/jarsigner
jdk-20.0.2/bin/java

查看目录 /usr/lib/jvm/jdk-20.0.2/bin

在这里插入图片描述

将 JDK 注册到 alternatives 中

查看已经安装的jdk(按回车退出命令,保留当前版本)

[root@k8s-node02 ~]# alternatives --config java

共有 3 个提供“java”的程序。

  选项    命令
-----------------------------------------------
   1           java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64/jre/bin/java)
*+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre/bin/java)
   3           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64/bin/java)

按 Enter 保留当前选项[+],或者键入选项编号:^Z

因为已经有了3个版本,所以这里最后的序号我们填4

[root@k8s-node02 ~]# update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-20.0.2/bin/java 4
[root@k8s-node02 ~]# update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-20.0.2/bin/javac 4

再次查看,jdk20已经注册安装好(按回车退出命令),但是目前服务器jdk还是使用的jdk1.8,还没有切换到jdk20

[root@k8s-node02 ~]# alternatives --config java

共有 4 个提供“java”的程序。

  选项    命令
-----------------------------------------------
   1           java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64/jre/bin/java)
*+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre/bin/java)
   3           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64/bin/java)
   4           /usr/lib/jvm/jdk-20.0.2/bin/java

按 Enter 保留当前选项[+],或者键入选项编号:

1.3 通过 alternatives 管理 JDK 版本

以切换jdk20为例

切换java

通过切换命令展示的版本列表,键入选项编号输入4


[root@k8s-node02 ~]# update-alternatives --config java

共有 4 个提供“java”的程序。

  选项    命令
-----------------------------------------------
   1           java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64/jre/bin/java)
*+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre/bin/java)
   3           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64/bin/java)
   4           /usr/lib/jvm/jdk-20.0.2/bin/java

按 Enter 保留当前选项[+],或者键入选项编号:4
[root@k8s-node02 ~]# java -version
java version "20.0.2" 2023-07-18
Java(TM) SE Runtime Environment (build 20.0.2+9-78)
Java HotSpot(TM) 64-Bit Server VM (build 20.0.2+9-78, mixed mode, sharing)

切换javac

通过切换命令展示的版本列表,键入选项编号输入2(因为有几个版本没有install javac 所以我们1.2步骤中虽然指定编号为4,但仍然默认排序为2)


[root@k8s-node02 ~]# update-alternatives --config javac

共有 2 个提供“javac”的程序。

  选项    命令
-----------------------------------------------
   1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64/bin/javac)
*+ 2           /usr/lib/jvm/jdk-20.0.2/bin/javac

按 Enter 保留当前选项[+],或者键入选项编号:2

至此版本切换完成
如果想切换为其他版本,再次使用上述两个命令,输入对应的编号切换即可

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在Linux切换JDK版本,可以按照以下步骤进行操作: 1. 查看当前系统中已安装JDK版本,可以使用命令:`sudo update-alternatives --config java` 2. 如果需要切换到其他版本JDK,可以先安装对应版本JDK,并将其添加到系统中,例如:`sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8._221/bin/java 1` 3. 然后再次运行第一步的命令,选择需要使用的JDK版本即可。 需要注意的是,不同Linux发行版可能会有些许差异,具体操作可以参考对应发行版的文档或者社区。 ### 回答2: 在Linux切换不同JDK版本,可以通过以下步骤实现: 1. 确认当前系统上已经安装了多个JDK版本,可以通过在终端中输入以下命令查看: ``` ls /usr/lib/jvm/ ``` 如果该目录下存在多个JDK版本,则说明系统上已经安装了多个JDK版本。 2. 将想要使用的JDK版本设置为默认版本,可以通过以下命令实现: ``` sudo update-alternatives --config java ``` 运行该命令后,会显示当前系统上可用的JDK版本列表,选择想要设置为默认的JDK版本序号即可。 3. 验证JDK版本切换成功,可以通过以下命令在终端中查看当前Java版本号: ``` java -version ``` 如果显示的版本号为期望设置的版本号,则说明切换成功。 除了上述方法外,也可以通过设置环境变量来切换JDK版本,具体方式可以参考不同Linux发行版的官方文档或其他相关资源。需要注意的是,不同Linux发行版可能存在差异,因此切换JDK版本时应根据实际情况进行选择和设置。 ### 回答3: Linux作为一种开源的操作系统,广受欢迎。在开发Java应用程序时,需要使用不同版本JDK。本文介绍如何在Linux切换JDK版本。 1. 查看已安装JDK版本 通过以下命令查看当前系统上安装JDK版本: $ java -version 如果系统中已经安装多个JDK版本,可以通过以下命令查看: $ update-alternatives --display java 2. 安装版本JDKLinux安装版本JDK,可以通过以下步骤实现: 1) 下载JDK安装包,并解压到指定目录。 2) 设置环境变量。 在.bashrc或者.profile中添加如下语句: export JAVA_HOME=/usr/local/jdk1.8.0_211 export PATH=$JAVA_HOME/bin:$PATH 上述代码中,JAVA_HOME表示新版本JDK的路径,需要根据实际情况进行修改。 3. 切换JDK版本Linux切换JDK版本,可以通过update-alternatives命令实现。具体操作如下: 1) 列出当前系统中已经安装JDK版本及其路径: $ update-alternatives --list java 2) 设置新版本JDK路径: $ sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_311/bin/java 1 $ sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0_311/bin/javac 1 上述代码中,第一个命令设置java命令的路径,第二个命令设置javac命令的路径。需要根据实际情况进行修改。 3) 切换JDK版本: $ sudo update-alternatives --config java 选择需要使用的JDK版本。 4. 验证JDK版本 使用以下命令验证JDK版本是否已经切换成功: $ java -version 以上就是在Linux切换JDK版本的详细步骤。希望对大家有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值