关于在OpenEuler中安装Linux版JDK11和17并实现双切换

一、在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并实现双切换,在这个过程中希望你记住“行百里者半九十”戒骄戒躁,继续好好学下去,学无止境。感谢您的观看。

加油,优秀的程序猿!(致敬

注:本文插入图均为原作者所写,如有疑问或不解,请大胆评论,小编看到也会及时回复的噢!

<think>嗯,用户想了解在华为欧拉系统上部署Java环境的方法。首先,我需要确认华为欧拉系统是基于哪个Linux发行的。通常,欧拉系统(EulerOS)是基于CentOS或openEuler的,所以包管理工具可能是yum或dnf。 接下来,用户可能需要安装JDK。常见的选项有OpenJDKOracle JDK。考虑到开源兼容性,可能推荐OpenJDK。需要提供具体的安装命令,比如使用yum install java-11-openjdk-devel或者其他本。 然后,环境变量的配置是关键步骤。要检查Java安装路径,更新.bash_profile或/etc/profile,设置JAVA_HOME、PATHCLASSPATH。用户可能需要source命令使配置生效。 验证安装部分,用户需要知道如何检查Java本,以及编写简单的HelloWorld程序来测试。这部分需要给出具体的命令示例代码,比如javacjava命令的使用。 可能还需要考虑多Java的情况,比如使用alternatives命令来切换本。此外,提醒用户注意权限问题,比如是否需要sudo来安装软件包,以及防火墙设置是否会影响Java应用的运行。 用户的实际应用场景可能涉及服务器部署,比如运行Spring Boot应用或Tomcat,所以可能需要补充相关的内容,例如如何打包JAR/WAR文件,设置内存参数等。不过用户的问题集中在环境部署,这部分可能需要放在后续步骤中,或者简要提及。 最后,确保整个流程清晰,步骤正确,避免遗漏关键点。同时,语言要口语化,避免过于技术化的术语,让不同层次的用户都能理解。</think>华为欧拉系统(EulerOS)部署Java环境可分为以下步骤: 一、准备工作 1. 连接服务器:通过SSH工具(如PuTTY/Xshell)登录EulerOS 2. 更新系统:执行命令 $$ sudo yum update -y $$ 二、安装JDK 推荐选择本(示例以OpenJDK 11为例): 1. 查询可用本 $$ yum search openjdk $$ 2. 安装开发套件 $$ sudo yum install java-11-openjdk-devel -y $$ 三、环境变量配置 1. 查找安装路径 $$ readlink -f /usr/bin/java $$ 典型路径示例: $$ /usr/lib/jvm/java-11-openjdk-11.0.xx.xx-0.eulerxx.x86_64 $$ 2. 编辑配置文件 $$ vi ~/.bash_profile $$ 添加内容: ```bash export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.xx.xx-0.eulerxx.x86_64 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ``` 3. 应用配置 $$ source ~/.bash_profile $$ 四、验证安装 1. 检查本 $$ java -version $$ 正常输出应显示: ```text openjdk version "11.0.xx" 2024-xx-xx LTS OpenJDK Runtime Environment (build 11.0.xx+xx-LTS) OpenJDK 64-Bit Server VM (build 11.0.xx+xx-LTS, mixed mode) ``` 2. 测试编译(新建HelloWorld.java) ```java public class HelloWorld { public static void main(String[] args) { System.out.println("EulerOS Java环境正常!"); } } ``` 执行命令: $$ javac HelloWorld.java $$ $$ java HelloWorld $$ 五、多本管理(可选) 使用alternatives工具: $$ sudo alternatives --config java $$ 注意事项: 1. 生产环境建议使用LTS本(Java 8/11/17) 2. 若部署Web应用,需同步配置Tomcat/JBoss等中间件 3. 防火墙需开放对应端口(如8080/8443) 4. 建议通过ansible脚本实现批量部署 完整环境验证成功后,即可部署Spring Boot/Dubbo等Java应用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值