Linux安装不同版本JDK

系统:CentOS 7.9.2009 x86_64

BellSoft Liberica JDK(spring官方推荐)

Java Download | Java 8, Java 11, Java 17, Java 21 - OpenJDK Builds for Linux, Windows & macOS (bell-sw.com)icon-default.png?t=N7T8https://bell-sw.com/pages/downloads/#jdk-17-lts

Oracle JDK(需要注册账号)

Java Downloads | Oracle 中国icon-default.png?t=N7T8https://www.oracle.com/cn/java/technologies/downloads/

〇、JDK查询与卸载

rpm -qa | grep jdk

rpm -qa:这是RPM包管理器的查询(query)选项,后面跟-a,表示查询所有已安装的包。
|:管道符号,它将前一个命令的输出作为后一个命令的输入。
grep jdk:这是一个过滤命令,用于从RPM包列表中筛选出包含"jdk"这个词的行。

rpm -e --nodeps jdk的rpm软件包的名字

在Linux系统中,如果你想要卸载一个已安装的RPM软件包,你可以使用rpm命令的-e选项来执行这个操作。--nodeps选项告诉rpm不检查依赖关系,这意味着如果软件包有依赖其他包的声明,rpm仍然会尝试卸载它。

一、解压

cd进入目录,JDK只要解压就行

tar -zxvf bellsoft-jdk21.0.2+14-linux-i586.tar.gz -C ./
tar -zxvf jdk-8u401-linux-i586.tar.gz -C ./

tar:这是调用 tar 命令,它是Linux中用来打包和解包文件的工具。
-z:这个选项告诉 tar 命令使用 gzip 来解压文件。gzip 是一种常用的压缩算法。
-x:这个选项告诉 tar 命令进行解包(提取)操作。
-v:这个选项让 tar 命令在解压时输出详细信息,即列出正在被解压的文件。
-f:这个选项后面跟的是要处理的文件名。
-C ./:这个选项告诉 tar 命令将文件解压到当前目录(./ 表示当前目录)。如果不指定 -C 选项,文件将被解压到 /(根目录)。

二、配置软链接

alternatives --install /usr/bin/java java /www/workspace/java/jdk-21.0.2 21
alternatives --install /usr/bin/java java /www/workspace/java/jdk1.8.0_401 8

在Linux系统中,alternatives 是一个用于维护命令链接的工具,alternatives --install 命令用于向系统中添加一个新的可选链接。这个命令的参数如下:
--install <link> <name> <path> <priority>
        <link>: 要创建的符号链接的完整路径。在这个例子中,是 /usr/bin/java。
        <name>: 可选链接的名称。在这个例子中,是 java。
        <path>: 实际文件的完整路径。在这个例子中,是 /www/workspace/java/jdk-21.0.2。
        <priority>: 优先级,一个整数,alternatives 在选择链接时会参考这个优先级。数字越大,优先级越高。

所以,这条命令的含义是:
        在Linux系统中,将 /usr/bin/java 链接设置为指向 /www/workspace/java/jdk-21.0.2,并给它一个优先级为21。这意味着 /usr/bin/java 将指向 /www/workspace/java/jdk-21.0.2 目录下的 java 二进制文件,除非有更高优先级的链接被设置。
        如果系统中已经存在 /usr/bin/java 链接,alternatives 会询问你是否想要替换它,或者你可以使用 -f 选项强制替换。
        使用 alternatives,系统管理员可以轻松地在不同的Java版本之间切换,而不需要手动更新符号链接。这对于依赖特定Java版本的程序来说非常有用。

三、配置环境变量

vim /etc/profile.d/jdk_env.sh
#软连接的路径
export JAVA_HOME=/usr/bin/java 
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

四、重新加载配置文件

source /etc/profile.d/jdk_env.sh

五、查看结果

alternatives --display java

alternatives --config java

六、排错

-bash: /usr/bin/java/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

yum -y install glibc.i686

error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

yum install zlib.i686

完毕!

(以下未尝试,仅作留档)

ubantu:

sudo apt-get install zlib1g:i386

对于 CentOS,只有 zlib 并不能解决问题:

sudo yum install zlib-devel.i686

参考:

Linux配置多版本JDK_linux安装多个jdk版本-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/qq_38173650/article/details/123798119

/lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/yzf279533105/article/details/129752457

android - libz.so.1:无法打开共享对象文件 - 堆栈溢出 (stackoverflow.com)icon-default.png?t=N7T8https://stackoverflow.com/questions/21256866/libz-so-1-cannot-open-shared-object-file

### 安装特定版本JDKLinux 对于希望在Linux操作系统上安装特定版本Java Development Kit(JDK)的情况,操作会依据所使用的具体Linux发行版有所不同。这里主要针对Ubuntu和CentOS两种常见的Linux发行版提供指导。 #### 对于Ubuntu用户而言 当目标是在Ubuntu 18.04这样的环境中安装OpenJDK——这是默认推荐的Java开发环境时,可以利用系统的包管理工具apt来完成这一过程[^1]。然而,如果需要安装某个具体的JDK版本,则可能需要手动下载对应的安装文件或者通过PPA(Personal Package Archive)获取指定版本并进行安装。 #### 针对CentOS用户的解决方案 考虑到CentOS可能存在多个不同版本JDK共存的情形,在这种情况下,`alternatives`命令成为设置默认Java解释器的有效手段之一[^2]。这同样适用于想要切换到某一特定版本的情景下;先确认所需版本已被正确安装至系统中,之后再借助此命令调整当前活动的Java版本。 为了确保能够顺利安装特定版本JDK,建议遵循如下通用指南: - **确定需求**:明确要安装的具体JDK版本号。 - 使用官方资源:访问Oracle官方网站或是采用开源替代品如Adoptium项目下的Temurin系列,从中选取适合Linux平台的目标版本下载链接。 - 执行安装流程:按照下载页面给出的指示执行相应的解压、配置路径等步骤。 - 设置环境变量:编辑~/.bashrc或其他shell初始化脚本文件,加入指向新安装JDK位置的相关PATH与JAVA_HOME定义语句。 - 测试验证:打开终端窗口输入java -version以及javac -version指令检验是否成功切换到了预期的JDK版本。 ```bash # 示例代码用于展示如何查看已安装Java版本列表,并设定默认版本(以CentOS为例) sudo update-alternatives --config java ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值