linux 升级jdk

63 阅读4分钟

一、适用场景

本教程涵盖三类核心需求,适配不同 Linux 发行版:

  1. RPM 系系统(CentOS/RHEL/Oracle Linux) :JDK 8u45 升级安装(替换旧版 JDK/JRE);
  1. 多 JDK 版本管理:通过update-alternatives切换不同 JDK 版本(如 JDK 7/8);
  1. Debian 系系统(Ubuntu 16.04) :OpenJDK 7 安装配置。

二、第一部分:RPM 系系统 JDK 8u45 升级安装

1. 前提准备

  • 下载文件:jdk-8u45-linux-x64.rpm(64 位系统专用);
  • 上传至服务器:通过 SCP/FTP 工具上传到指定目录(如 /usr/local/src);
  • 登录服务器:建议使用 root 权限或sudo权限操作。

2. 安装步骤

# 1. 进入安装包目录
cd /usr/local/src
# 2. 给安装包添加执行权限(仅所有者可执行,更安全)
chmod u+x jdk-8u45-linux-x64.rpm
# 3. 执行RPM安装(默认路径:/usr/java/jdk1.8.0_45)
rpm -ivh jdk-8u45-linux-x64.rpm
  • 安装说明:rpm -ivh 会自动处理依赖(基础依赖需提前安装,如 libc6),安装完成后 JDK 默认部署在 /usr/java/ 目录下。

3. 配置环境变量

# 1. 编辑系统环境变量配置文件
vi /etc/profile
# 2. 在文件末尾添加以下内容(按 i 进入编辑模式)
export JAVA_HOME=/usr/java/jdk1.8.0_45  # JDK安装根目录
export JRE_HOME=$JAVA_HOME/jre          # JRE目录(JDK内置,无需额外安装)
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  # 类路径
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH  # 加入系统环境变量
# 3. 保存退出(按 Esc,输入 :wq 回车)
# 4. 使配置立即生效(无需重启服务器)
source /etc/profile

4. 验证安装成功

java -version
  • 成功输出示例:
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

三、第二部分:Linux 多 JDK 版本切换(通用方法)

当系统安装多个 JDK 版本(如 JDK 7 和 JDK 8)时,通过update-alternatives工具切换默认版本:

1. 查看已安装的 JDK 版本

# 方法1:通过rpm查询(仅RPM系系统)
rpm -qa | grep java
# 方法2:通过find查询所有Java安装路径(通用)
find /usr -name "java" | grep bin/java
  • 示例输出:/usr/java/jdk1.7.0_45/bin/java、/usr/java/jdk1.8.0_45/bin/java

2. 注册 JDK 到系统备选列表

# 1. 注册JDK 7的java命令(优先级300,数值越高优先级越高)
update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_45/bin/java 300
# 2. 注册JDK 7的javac命令(编译工具,需与java对应)
update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.7.0_45/bin/javac 300
# 3. (可选)注册JDK 8(若需切换回8)
update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_45/bin/java 400
update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_45/bin/javac 400
  • 说明:--install 格式为「--install 系统命令路径 命令名称 JDK实际路径 优先级」。

3. 切换 JDK 版本

# 执行切换命令(java命令)
update-alternatives --config java
# 执行切换命令(javac命令,需与java版本一致)
update-alternatives --config javac
  • 操作示例:
    1. 执行后会列出所有已注册的版本,按提示输入「序号」并回车;
    1. 示例界面:
有 2 个程序提供“java”。
  选择    命令
-----------------------------------------------
*+ 1           /usr/java/jdk1.8.0_45/bin/java
   2           /usr/java/jdk1.7.0_45/bin/java
输入要选择的编号,或按 Enter 保留当前选择[+]:2

4. 验证切换结果

# 查看java版本
java -version
# 查看javac版本(确保与java一致)
javac -version

四、第三部分:Ubuntu 16.04 安装 OpenJDK 7

Ubuntu 16.04 默认软件源可能不含 OpenJDK 7,需通过 PPA 源安装:

1. 安装依赖工具

# 安装软件源管理工具
sudo apt-get install -y software-properties-common python-software-properties
  • 说明:python-software-properties 为旧版依赖,确保兼容 Ubuntu 16.04。

2. 添加 OpenJDK 7 PPA 源

# 添加webupd8team的Java PPA源(含旧版OpenJDK)
sudo add-apt-repository ppa:webupd8team/java
# 更新软件源缓存
sudo apt-get update
  • 注意:执行add-apt-repository时需按 Enter 确认添加。

3. 安装 OpenJDK 7

sudo apt-get install -y openjdk-7-jdk
  • 安装路径:默认安装到 /usr/lib/jvm/java-7-openjdk-amd64/。

4. 验证安装

java -version
  • 成功输出示例:
java version "1.7.0_181"
OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-0ubuntu0.2)
OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)

五、关键说明与注意事项

1. 版本选择建议

  • JDK 8u45:适用于需要稳定兼容的企业级应用(已停止官方支持,生产环境建议升级到 JDK 8u300 + 或 JDK 17 LTS);
  • OpenJDK 7:仅用于兼容旧版 legacy 系统,安全性较低,非必要不推荐使用;
  • 生产环境优先选择 OpenJDK 17 LTS(免费长期支持)或 Oracle JDK 17(商业授权)。

2. 环境变量配置注意

  • 若java -version提示「未找到命令」,检查:
    1. JAVA_HOME路径是否与实际安装路径一致;
    1. 执行source /etc/profile重载配置;
    1. 若为普通用户,可编辑~/.bashrc添加环境变量(仅当前用户生效)。

3. 权限问题

  • RPM 安装 JDK 时,默认目录权限为 755,普通用户可正常使用;
  • Ubuntu 安装 OpenJDK 时,需用sudo提升权限,避免安装失败。

4. 卸载 JDK(如需)

# RPM系卸载JDK 8u45
rpm -e jdk1.8.0_45-fcs.x86_64
# Ubuntu卸载OpenJDK 7
sudo apt-get remove -y openjdk-7-jdk
sudo apt-get autoremove -y  # 清理依赖