linux中可通过apt/yum安装多版本openjdk,手动解压安装非仓库版本,配置java_home和path,用update-alternatives或jenv实现灵活切换,并验证版本一致性。

如果您在Linux系统中需要安装OpenJDK并支持多个Java版本共存,以便根据项目需求灵活切换,需通过包管理器安装不同版本的OpenJDK,并配置环境变量实现快速切换。以下是具体操作步骤:
一、使用APT安装多个OpenJDK版本(Ubuntu/Debian)
Ubuntu和Debian系统可通过apt命令直接安装多个官方维护的OpenJDK版本,无需手动下载压缩包,安装过程自动完成依赖解析与路径注册。
1、更新软件包索引:sudo apt update
2、安装OpenJDK 8、11和17:sudo apt install openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk
3、验证已安装版本:ls /usr/lib/jvm/ | grep java
二、使用YUM/DNF安装多个OpenJDK版本(CentOS/RHEL/Fedora)
Red Hat系发行版通过yum或dnf可从默认仓库或EPEL源安装多个长期支持的OpenJDK版本,各版本以独立软件包形式存在,互不覆盖。
1、在CentOS 8+/RHEL 8+上启用AppStream仓库(如未启用):sudo dnf config-manager --set-enabled powertools
2、安装OpenJDK 11和17:sudo dnf install java-11-openjdk-devel java-17-openjdk-devel
3、查看可用Java安装路径:sudo alternatives --config java
三、手动解压安装OpenJDK(通用方法,适用于任意Linux发行版)
当系统仓库未提供所需版本(如OpenJDK 21),可从Adoptium或Eclipse Temurin官网下载tar.gz包,解压至自定义目录,避免干扰系统默认Java环境。
1、创建统一JDK安装目录:sudo mkdir -p /opt/java
2、下载并解压OpenJDK 21到该目录(示例URL以Temurin为准):sudo wget https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.1%2B12/OpenJDK21U-jdk_x64_linux_hotspot_21.0.1_12.tar.gz -O /tmp/jdk21.tar.gz && sudo tar -zxf /tmp/jdk21.tar.gz -C /opt/java/
3、确认解压后路径:ls /opt/java/jdk-21.0.1+12-jre
四、配置JAVA_HOME并设置全局环境变量
为使系统及用户级应用识别Java安装位置,需将JAVA_HOME指向当前主用JDK路径,并将bin目录加入PATH,所有Shell会话启动时自动加载该配置。
1、编辑系统级环境配置文件:sudo nano /etc/profile.d/java.sh
2、写入以下内容(以OpenJDK 17为例):export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 && export PATH=$JAVA_HOME/bin:$PATH
3、立即生效配置:source /etc/profile.d/java.sh
五、使用update-alternatives实现多版本Java快速切换
Debian/Ubuntu系系统提供update-alternatives工具,可将多个Java执行文件注册为同一逻辑名称(java、javac等),通过交互式菜单一键切换默认版本。
1、为每个JDK版本注册java命令:sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1
2、继续注册其他版本(注意优先级数字递增):sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 2
3、启动交互式选择界面:sudo update-alternatives --config java
六、使用jenv管理多版本Java环境(开发者推荐)
jenv是专为Java开发者设计的轻量级版本管理工具,支持全局、shell级、目录级三级作用域切换,无需修改系统级配置文件,适合多项目并行开发场景。
1、克隆jenv源码并初始化:git clone https://github.com/jenv/jenv.git ~/.jenv && echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(jenv init -)"' >> ~/.bashrc
2、重新加载Shell配置:source ~/.bashrc
3、添加已安装的JDK路径(示例):jenv add /usr/lib/jvm/java-11-openjdk-amd64 && jenv add /usr/lib/jvm/java-17-openjdk-amd64
七、验证当前Java版本及切换结果
每次完成版本切换后,必须验证JAVA_HOME、java -version及javac -version输出是否一致,确保运行时与编译器版本匹配,避免因版本错位导致构建失败。
1、检查JAVA_HOME路径:echo $JAVA_HOME
2、检查Java运行时版本:java -version
3、检查Java编译器版本:javac -version
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











