一、在OpenEuler中安装Linux版JDK11和17并配置环境变量
概述:
本文中,详细描述了如何在虚拟机OpenEuler中安装Linux版JDK11和17并实现二者双切换,同时也说明了其安装原理,与部分代码讲解,适用于未入门程序猿,傻瓜教学,包教包会。
水已试,不深,请诸位放心食用!希望对您有帮助,您的点赞是对我最大的支持,感谢。
1.下载资源问题:这里小编推荐在清华镜像网站中下载
(1)下载JDK11网址:
Index of /Adoptium/11/jdk/x64/linux/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
(2)下载JDK17网址:
Index of /Adoptium/17/jdk/x64/linux/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
导入:点那个绿色向上箭头,然后选择你刚才下载好的一个JDK11安装包和JDK17安装包,
导入完就会在root中有所显示可以看到噢
Linux 标准目录结构(根目录 / 下的核心目录,非用户家目录):
/bin:基础可执行命令(如 ls, cp)。
/etc:系统配置文件(如网络、服务配置)。
/home:普通用户的家目录(如用户 alice 的家目录是 /home/alice)。
/root:root 用户的家目录(与普通用户隔离,权限更高,你所下载的压缩包就在这里)。
/usr:用户程序与资源(类似 Windows 的 Program Files)。
/var:动态数据(日志、数据库、网站文件)。
/dev:设备文件(如磁盘、键盘)。
/tmp:临时文件(重启后可能清空)。
/boot:系统启动文件(内核、引导程序)。
/lib & /lib64:系统基础库文件。
/opt:可选第三方软件(手动安装的程序)。
/proc:内核和进程的虚拟文件系统(实时信息)。
/sbin:系统管理员用的特权命令(如 fdisk, iptables)。
2.解压问题:下载完成后,压缩包文件名后缀为 .tar ,故我们要通过解压 tar 的方式来解压JDK11和17这两个压缩包
输入代码: sudo dnf install tar
//代码意思:以管理员的身份安装指定的tar解压软件包
耐心的等待……int……………………(可能需要很长时间,切勿着急,先来杯咖啡)
等完了就会出现以下界面,输入y,干就完了!!!
恭喜你, 安装解压工具完成!
3.解压代码:
sudo mkdir -p /usr/local/java
//确保目录存在,创建一个java文件夹在 /usr/local 中
sudo tar xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.26_4.tar.gz -C /usr/local/java
//代码解释:
//结构:命令 选项 参数
//含义:sudo:命令, 管理员权限;tar:命令,解压工具;xzf:选项,x代表解压,z代表使用gzip方式解压;f代表指定文件名;OpenJDK11U-jdk_x64_linux_hotspot_11.0.26_4.tar.gz : 参数,要解压的文件名;-C:选项,指定解压目录的后置选项(其中,小写 -c 在 tar 中是创建归档文件的选项,即用来将多个文件/文件夹打包成一个归档文件。补充:-c 与 -x 是对立的,一个创建,一个解压); /usr/local/java : 参数,目标路径值(也就是说,你解压到哪里)
//作用:解压JDK11到新创建的java文件夹中
sudo tar xzf OpenJDK17U-jdk_x64_linux_hotspot_17.0.14_7.tar.gz -C /usr/local/java
//代码解释同上,唯一不同点是“要解压的文件名”这是解压JDK17的:OpenJDK17U-jdk_x64_linux_hotspot_17.0.14_7.tar.gz
//作用:解压JDK17到新创建的java文件夹中
ls /usr/local/java
//作用:验证JDK11与17是否正确解压到我们指定的java文件夹中
出现图片倒数第二行的蓝色字体部分,即解压成功
4.配置环境变量:
(1)为什么要配置环境变量:目的在于让系统知道JDK的安装位置,从而快速反应找到我们所需要的JDK,直接通过终端调用 java 或 javac 命令时,系统能自动搜索到可执行文件,大大减短了搜索时间。
(2)如何配置环境变量:sudo(超级管理员权限)nano(文本编辑器)vi (文本编辑器)可替代 nano //注:本文使用 vi(文本编辑器)
5.配置JDK11和JDK17环境变量 :
方法一(EOF):
(1)输入(按行输,切勿一口气输完,戒骄戒躁):
sudo sh -c 'cat >> /etc/profile <<EOF
// 通过以新 shell 环境执行引号内的命令,直接追加 JDK 配置到文件末尾
export JAVA_HOME=/usr/local/java/jdk-11.0.26+4
// 定义 JDK 11 配置路径
export PATH=\$JAVA_HOME/bin:\$PATH
// 确保系统优先使用 JDK 的 Java命令
source /etc/profile
//立即生效
//原理:用户登录实现shell交互,
//触发条件:用户通过终端登录时(如 SSH)
方法二(vi文本编辑器):
(1)输入:
sudo vi /etc/profile
(ok,你已经进入了vi虚拟机,完成了一半了,加油!请继续做下去)
移动光标到文件末尾(按 G 键直接跳到最后一行)
找到以下两行:
export JAVA_HOME=/usr/local/java/jdk-11.0.26+4
export PATH=$JAVA_HOME/bin:$PATH
按 i 键进入编辑模式(左下角会显示 -- INSERT --)
替换旧的 JDK 11 路径为 JDK 17 路径:
export JAVA_HOME=/usr/local/java/jdk-17.0.14+7 // <<< 修改这一行!
export PATH=$JAVA_HOME/bin:$PATH //此行无需改动
按 Esc 键退出编辑模式
输入 :wq(写入并退出),然后按回车
6.立即生效配置
source /etc/profile
//和上面的执行命令一样
7. 验证是否成功
java -version
//应输出 JDK 17 的版本信息
echo $JAVA_HOME
//应显示 /usr/local/java/jdk-17.0.14+7
二、JDK11和JDK17版本切换
方法一(使用update-alternatives 工具):
1.版本切换使用工具:
因为我们的目的是“同时保留 JDK 11 和 17”因此,我们需要使用 update-alternatives 工具:
那么我们为什么使用update-alternatives 工具呢?
原因如下:
2.输入代码切换:
//注册 JDK 17
sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk-17.0.14+7/bin/java 2
//将 JDK 17 注册为系统 Java命令的候选版本
//注册 JDK 11
sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk-11.0.26+4/bin/java 1
//同理,将 JDK 17 注册为系统 Java命令的候选版本
sudo update-alternatives --config java
//通过 update-alternatives工具进入版本切换界面
解释:update-alternatives 工具有什么作用呢?
update-alternatives 是 Linux 系统中用于管理多版本软件共存和切换的工具,它通过符号链接机制控制 /usr/bin 等系统路径下命令的实际指向版本。(说人话:使用一串代码用来切换工具的东西)使用场景:(1)切换 Java 版本(你现在的操作);(2) 管理系统 Python 版本;(3)多版本编译器(如 GCC);
2.验证切换:
看到这个表了没?注意注意!“ * ”的表示当前的版本,而“ + ”表示它推荐的版本,但是!并不是当前的版本!切勿混淆!!!
会有一个“选项”列,在那么你想换成哪个就输哪个“选项的数字”就ok了噢,
举例:我这里是将JDK17切换为JDK11
列表显示JDK11为“2”那我就输2,java 命令切换至 JDK 11
java -version
//显示 JDK 11 版本
which java
//输出 /usr/bin/java
ls -l /etc/alternatives/java
//指向 JDK 11 的 bin/java
方法二:
在你进入vi文本编辑器时候,其实就可以通过修改环境变量内容以达到JDK11和JDK17的切换效果:
之前在输入 sudo vi /etc/profile 进入文本编辑器后:
按 i 键进入编辑模式(左下角会显示 -- INSERT --)
替换旧的 JDK 11 路径为 JDK 17 路径:
export JAVA_HOME=/usr/local/java/jdk-17.0.14+7 // <<< 修改这一行!
export PATH=$JAVA_HOME/bin:$PATH //此行无需改动
按 Esc 键退出编辑模式
输入 :wq(写入并退出),然后按回车
其实这段就是切换JDK的操作,通过在环境变量中替换路径以达到切换效果。
结尾致谢:
ok,恭喜你以及完全的学会了如何正确在OpenEuler中安装Linux版JDK11和17并实现双切换,在这个过程中希望你记住“行百里者半九十”戒骄戒躁,继续好好学下去,学无止境。感谢您的观看。
加油,优秀的程序猿!(致敬
注:本文插入图均为原作者所写,如有疑问或不解,请大胆评论,小编看到也会及时回复的噢!