CentOS 中配置 OpenJDK以及多版本管理

devtools/2024/9/23 15:30:34/

以下是在 CentOS 中配置 OpenJDK 的步骤:
一、安装 OpenJDK
使用以下命令检查系统中是否已经安装了 Java:

   java -version

如果已安装,会显示 Java 版本信息。如果未安装,则继续下一步。
使用 yum 安装 OpenJDK:

   yum install java-1.8.0-openjdk-devel

我更喜欢直接用镜像源下载,清华源ADOPtium目录

[root@localhost software]# wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/18/jdk/x64/linux/OpenJDK18U-jd
--2024-09-17 23:51:34--  https://mirrors.tuna.tsinghua.edu.cn/Adoptium/18/jdk/x64/linux/OpenJDK18U-jdk_x64_l
正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.15.130, 2402:f000:1:400::2
正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15.130|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:192590674 (184M) [application/octet-stream]
正在保存至: “OpenJDK18U-jdk_x64_linux_hotspot_18.0.2.1_1.tar.gz”100%[=======================================================================================================2024-09-17 23:53:34 (1.54 MB/s) - 已保存 “OpenJDK18U-jdk_x64_linux_hotspot_18.0.2.1_1.tar.gz” [192590674/192

二、设置环境变量
编辑 /etc/profile 文件:

   vi /etc/profile

在文件末尾添加以下内容:

   export JAVA_HOME=/usr/lib/jvm/jdk-1.8.0 #具体目录以下载的实际目录为准export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

注意,这里的JAVA_HOME路径可能因系统和安装的 OpenJDK 版本而有所不同。你可以通过以下命令确定实际的JAVA_HOME路径:

   update-alternatives --config java

该命令会列出系统中的 Java 安装,并显示其对应的路径。
使环境变量生效:

   source /etc/profile

三、验证安装

 java -version   #显示 OpenJDK 的版本信息,表明安装和配置成功

关于多版本的处理

update-alternatives 的基本用法
update-alternatives 是 Ubuntu 的软件多版本管理工具,基本用法为,

update-alternatives --install <link> <name> <path> <priority> [--force]

例如,我要创建一个符号链接 /usr/bin/cmake ,它指向实际安装路径 /usr/local/bin/cmake,则可以使用如下命令,

sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force
# /usr/bin/cmake 为链接的名字
# cmake 指定在 alternatives 文件夹下的名字
# path 为实际文件路径
# priority 给当前的实际文件指定一个值,值越大,权限越高

切换版本,以 cmake 为例,

update-alternatives --config cmake

查看已有的 alternatives 配置,

update-alternatives --list cmake

或者

update-alternatives --display cmake

为啥使用update-alternatives
简化多版本管理:
update-alternatives为管理同一程序的多个版本提供了一个集中的解决方案,使得切换默认版本变得简单快捷。
避免版本冲突:
在开发过程中,避免不同版本之间的冲突是非常重要的。通过update-alternatives,我们可以确保系统中只有一个版本是活跃的,从而减少可能的冲突。
提高开发效率:
当我们需要在不同版本的Python之间切换时,update-alternatives为我们提供了一个快速、有效的解决方案,从而提高了开发效率。


http://www.ppmy.cn/devtools/116064.html

相关文章

10年计算机考研408-计算机网络

【题33】下列选项中&#xff0c;不属于网络体系结构所描述的内容是&#xff08;&#xff09; A.网络的层次 B.每一层使用的协议 C.协议的内部实现细节 D.每一层必须完成的功能 解析&#xff1a; 本题考查的是网络体系结构相关的概念。 图1描述了网络的7层架构以及每一层所要完成…

UE5-俯视角色移动(蓝图)01

效果如下&#xff1a; 蓝图节点如下&#xff1a; 使用示例自带的移动蓝图&#xff0c;发现角色只能平移&#xff0c;不会转向。必须勾选以下选项&#xff1a; 点击蓝图-》组件-》SpringArm节点。在细节中找到摄像机设置&#xff0c;勾选以下&#xff1a; 在 点击蓝图-》组件-…

数据结构-2.顺序表

1.线性表 线性是n个具有相同特性的数据元素的有限序列. 线性表是一种在实际中广泛使用的数据结构,常见的线性表有: 顺序表 , 链表 , 栈 , 队列... 线性表在逻辑上是线性结构, 也就是连续的一条直线 . 但是在物理结构上并不是连续的, 线性表在物理上存储时, 通常以数组和链式结…

Rocky Linux 9 中添加或删除某个网卡的静态路由的方法

使用ip命令配置临时路由 添加静态路由 ip route add <目的网络> via <下一跳IP> dev <网卡接口名称>例: 给eth0网卡添加一个到达 192.168.2.0/24 网络&#xff0c;下一跳为 192.168.1.254 的路由 ip route add 192.168.2.0/24 via 192.168.1.254 dev eth0…

卡尔曼滤波中Q和R与噪声的关系

卡尔曼滤波 一种用于估计系统状态的递归滤波器&#xff0c;通过融合传感器测量和系统模型&#xff0c;提供系统状态的最优估计。 Q和R是什么 在卡尔曼滤波中&#xff0c;Q和R分别表示过程噪声和测量噪声的协方差矩阵。 Q Q Q矩阵&#xff08;过程噪声协方差矩阵&#xff09;…

git 问题 --- fatal: detected dubious ownership in repository at

在通过 Git Bash 提交项目代码时输入 git pull 或git add . 命令后&#xff0c;报错&#xff1a;fatal: detected dubious ownership in repository at 这是因为该项目的所有者与现在的用户不一致 比如说&#xff1a; 该项目的所有者是 Administrator&#xff0c;而当前用户是…

监控易监测对象及指标之:Kubernetes(K8s)集群的全方位监控策略

随着Kubernetes&#xff08;K8s&#xff09;在云原生架构中的广泛应用&#xff0c;确保集群的高效、稳定运行变得至关重要。监控作为运维管理的核心&#xff0c;对于保障Kubernetes集群的性能和可用性具有不可替代的作用。本文基于监控易的监控指标&#xff0c;探讨了对Kuberne…

数据结构-3.2.栈的顺序存储实现

一.顺序栈的定义&#xff1a;top指针指向栈顶元素 1.图解&#xff1a; 2.代码&#xff1a; #include<stdio.h> #define MaxSize 10 //定义栈最多存入的元素个数 ​ typedef struct {int data[MaxSize]; //静态数组存放栈中元素int top; //栈顶指针 } SqStack; ​ int…