Linux同时安装多个JDK

Linux同时安装多个JDK

  • 一、JDK
    • 1.1、JDK的下载
    • 1.2、解压并放置目录
  • 二、通过alias切换版本
    • 2.1、修改profile文件
    • 2.2、使用和验证
  • 三、使用update-alternatives工具
    • 3.1、修改profile文件
    • 3.2、指定JDK版本
    • 3.3、使用和验证
  • 四、总结

一、JDK

1.1、JDK的下载

JDK官网下载:https://www.oracle.com/java/technologies/downloads/

JDK8下载:https://download.oracle.com/otn/java/jdk/8u401-b10/4d245f941845490c91360409ecffb3b4/jdk-8u401-linux-x64.tar.gz

JDK17下载:https://www.oracle.com/java/technologies/downloads/

JDK21下载:https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

Linux环境可直接下载到服务器:

wget https://download.oracle.com/otn/java/jdk/8u401-b10/4d245f941845490c91360409ecffb3b4/jdk-8u401-linux-x64.tar.gzwget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gzwget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

提示:下载完成之后先进行解压处理

1.2、解压并放置目录

  • 1、新建目录存放JDK
cd /
mkdir java
  • 2、解压已下载的JDK
tar -zxvf jdk-8u401-linux-x64.tar.gz
tar -zxvf jdk-17_linux-x64_bin.tar.gz
tar -zxvf jdk-21_linux-x64_bin.tar.gz

二、通过alias切换版本

2.1、修改profile文件

  • 1、编辑profile文件
vi /etc/profile
  • 2、profile文件内容追加
export JAVA_HOME=/java/jdk1.8.0_211
export CLASSPATH=$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATHalias java8='export JAVA_HOME=/java/jdk1.8.0_211 && export CLASSPATH=.:${JAVA_HOME}/lib && export PATH=${JAVA_HOME}/bin:$PATH && java -version'
alias java17='export JAVA_HOME=/java/jdk-17.0.12 && export CLASSPATH=.:${JAVA_HOME}/lib && export PATH=${JAVA_HOME}/bin:$PATH && java -version'
alias java21='export JAVA_HOME=/java/jdk-21.0.4 && export CLASSPATH=.:${JAVA_HOME}/lib && export PATH=${JAVA_HOME}/bin:$PATH && java -version'
  • 3、profile文件刷新
source /etc/profile

2.2、使用和验证

  • 1、查看版本
java -version

在这里插入图片描述

  • 2、版本切换
java8
java17
java21

在这里插入图片描述


三、使用update-alternatives工具

3.1、修改profile文件

  • 1、编辑profile文件
vi /etc/profile
  • 2、profile文件内容追加
export JAVA_HOME=/usr/bin/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/bin:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
  • 3、profile文件刷新
source /etc/profile

3.2、指定JDK版本

  • 1、初始化alternatives,告知系统JDK的安装
alternatives --install /usr/bin/java java /java/jdk1.8.0_211 8
alternatives --install /usr/bin/java java /java/jdk-17.0.12 17
alternatives --install /usr/bin/java java /java/jdk-21.0.4 21

sudo update-alternatives --install /usr/bin/java java /java/jdk1.8.0_211 8
sudo update-alternatives --install /usr/bin/java java /java/jdk-17.0.12 17
sudo update-alternatives --install /usr/bin/java java /java/jdk-21.0.4 21
  • 2、配置默认的JDK版本
alternatives --config java
或
sudo update-alternatives --config java

在这里插入图片描述


3.3、使用和验证

  • 1、查看版本
java -version

在这里插入图片描述

  • 2、版本切换
alternatives --config java

在这里插入图片描述

  • 3、新建shell脚本

新建、编辑文件

touch javaVersion.sh
vim javaVersion.sh

内容增加

alternatives --config javajava -version

脚本运行

sh javaVersion.sh

提示:后续方便使用可以直接运行脚本即可


四、总结

建议:使用第二种,比较方便操作

OK,就这些吧。
有什么不对的还望指正,书写不易,觉得有帮助就点个赞吧!☺☺☺

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/442881.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人机之飞行算法篇

无人机的飞行算法是一个复杂而精细的系统,它涵盖了多个关键技术和算法,以确保无人机能够稳定、准确地执行飞行任务。 一、位置估计 无人机在空中飞行过程中需要实时获取其位置信息,以便进行路径规划和控制。这通常通过以下传感器实现&#…

Rust编程中的循环语句

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust编程与项目实战_夏天又到了的博客-CSDN博客 6.2 for 循 环 迭代次数是确定/固定的循环称为确定循环。for 循环是一个确定循环…

新书速览|你好,C++

《你好,C》 本书内容 《你好,C》主要介绍C开发环境的搭建、基础语法知识、面向对象编程思想以及标准模板库的应用,特别针对初学者在学习C过程中可能遇到的难点提供了解决方案。全书共分13章,以一个工资程序的不断优化和完善为线索…

速度白嫖:Minimax海螺上线图生视频功能

一、什么是Minimax海螺 网址:https://hailuoai.video/ Minimax海螺是一款创新的内容创作工具,专注于将静态图像转化为动态视频。它利用先进的图像处理与生成算法,帮助用户将普通图片迅速转变为引人入胜的短视频,适合社交媒体、…

【HarmonyOS开发笔记 1】 -- 开发环境的搭建

DevEco Studio 的下载与安装 下载 下载路径: https://developer.huawei.com/consumer/cn/download/ 安装 解压后双击 deveco-studio-5.0.3.814.exe 指定安装目录,或者默认,然后下一步 一直“下一步”, 直到最后安装完成 新…

视频消重pr模板|胶片损伤特效视频去重pr模板工程文件

可以用于视频消重效果的pr去重模板,10种胶片损伤特效视频叠加素材pr工程文件。 Premiere Pro模板,可以使用这些效果来增强您的媒体。音乐不包括在内。 下载地址:Pr模板网 下载链接:https://prmuban.com/40591.html

分享我“Excel 表格”关键字的博客笔记(python脚本全程自动)

Python脚本全程自动,全部Python内建工具脚本纯净。 (笔记模板由python脚本于2024年10月05日 19:51:06创建,本篇笔记适合喜欢Excel和Python的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大…

Qt - QMenu

QMenu 1、menu转string输出 //GlobalEnum.h #include <QObject> #include <QMetaEnum> class GlobalEnum : public QObject {Q_OBJECT public:EnumTest();enum Enum_Test{ZhangSan 0,WangWu,};Q_ENUM(Enum_Test) };#define EnumToString(e) \ QMetaEnum::fromTy…

手把手教你如何配置好VS Code的WEB基础开发环境(保姆级)

1. VS Code介绍 微软旗下的多场景开发环境软件&#xff0c;支持JAVA、C、C#、C、WEB、VUE、CSS、HTML、Python等等等 如果你刚刚开始编程或者准备学习WEB&#xff0c;那么我强烈建议你使用这款软件 缺点&#xff1a;&#xff08;针对初学者&#xff09; 需要安装各种各样的插…

数据分析-29-基于pandas的窗口操作和对JSON格式数据的处理

文章目录 1 窗口操作1.1 滑动窗口思想1.2 函数df.rolling2 JSON格式数据2.1 处理简单JSON对象和JSON列表2.1.1 处理简单的JSON结构2.1.2 处理空字段2.1.3 获取部分字段2.2 处理多级json2.2.1 展开所有级别(默认)2.2.2 自定义展开层级2.3 处理嵌套列表JSON3 参考附录1 窗口操作 …

每日学习一个数据结构-图

文章目录 图基础一、图的定义二、图的相关概念三、图的分类四、图的使用场景 和图相关的算法一、图的遍历算法二、最短路径算法三、最小生成树算法四、图匹配算法五、网络流算法 图基础 一、图的定义 在数学中&#xff0c;图是描述于一组对象的结构&#xff0c;其中某些对象对…

YOLOv11模型地址

地址链接 项目Git地址&#xff1a;https://github.com/ultralytics/ultralytics?tabreadme-ov-file

大模型生成PPT大纲优化方案:基于 nVidia NIM 平台的递归结构化生成

大模型生成PPT大纲优化方案&#xff1a;基于 nVidia NIM 平台的递归结构化生成 待解决的问题 生成PPT大纲是一种大模型在办公场景下应用的常见需求。 然而&#xff1a; 目前直接让大模型生成大纲往往是非结构化的&#xff0c;输出格式多样&#xff0c;难以统一和规范&#…

Idea 2024.2.3 找不到Cache Recovery设置

idea找不到官网所说的设置 下面是解决办法 1.找到对应位置 2.增加配置文件内容 idea.is.internaltrue3.重启idea 4.查看结果 解决方案原文

Kubernetes(K8s)的简介

一、Kubernetes的简介 1 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个阶段&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xff1a;不能为应…

MySQL 查询数据

MySQL 数据库使用SQL SELECT语句来查询数据。 你可以通过 mysql> 命令提示窗口中在数据库中查询数据&#xff0c;或者通过PHP脚本来查询数据。 语法 以下为在MySQL数据库中查询数据通用的 SELECT 语法&#xff1a; SELECT column_name,column_name FROM table_name [WHER…

OpenCV高级图形用户界面(5)获取指定滑动条(trackbar)的当前位置函数getTrackbarPos()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 返回滑动条的位置。 该函数返回指定滑动条的当前位置。 cv::getTrackbarPos() 函数用于获取指定滑动条&#xff08;trackbar&#xff09;的当前…

7-3 简单计算器

本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示&#xff0c;计算器由两个堆栈组成&#xff0c;一个堆栈 S1​ 存放数字&#xff0c;另一个堆栈 S2​ 存放运算符。计算器的最下方有一个等号键&#xff0c;每次按下这个键&#xff0c;计算器就…

GPT系列

GPT&#xff08;Generative Pre-Training&#xff09;&#xff1a; 训练过程分两步&#xff1a;无监督预训练有监督微调 模型结构是decoder-only的12层transformer 1、预训练过程&#xff0c;窗口为k&#xff0c;根据前k-1个token预测第k个token&#xff0c;训练样本包括700…

c++ 计算同一行上的最大点数(Count maximum points on same line)

示例图 给定二维平面上的 N 点作为一对 (x, y) 坐标&#xff0c;我们需要找到位于同一条线上的最大点数。 例子&#xff1a; 输入&#xff1a;points[] {-1, 1}, {0, 0}, {1, 1}, {2, 2}, {3, 3}, {3, 4} 输出&#xff1a;4 那么位于同一条线上的点…