前面已经完成了 Ubuntu 24.04 系统初始化。本篇介绍如何在 Ubuntu 24.04 上配置 JDK 17 环境。Ubuntu 24.04 官方源中已经包含 OpenJDK 17,推荐使用 APT 直接安装,简单、稳定,也便于后续通过系统更新维护。
前置条件
- 已完成 Ubuntu 24.04 系统初始化;
- 已更换国内镜像源;
- 已安装
vim、curl、wget等常用工具; - 当前用户具有 sudo 权限。
查看可用 Java 版本
安装前可以先查看 Ubuntu 源中提供的 OpenJDK 版本:
bash
apt search openjdk | grep jdk
Ubuntu 24.04 默认源中通常包含 OpenJDK 17 和 OpenJDK 21 等版本。
安装 OpenJDK 17
执行以下命令安装 JDK 17:
bash
sudo apt update
sudo apt install -y openjdk-17-jdk
如果只需要运行 Java 程序,不需要编译功能,可以安装 headless 版本,占用空间更小:
bash
sudo apt install -y openjdk-17-jre-headless
但后续部署 Spring Boot 等应用时,通常建议安装完整 JDK,所以推荐直接使用 openjdk-17-jdk。
验证安装结果
安装完成后,执行以下命令验证:
bash
java -version
javac -version
正常输出类似:
text
openjdk version "17.0.x"
OpenJDK Runtime Environment (build 17.0.x+...)
OpenJDK 64-Bit Server VM (build 17.0.x+..., mixed mode, sharing)
如果能看到 JDK 17 版本信息,说明安装成功。
查看 JDK 安装路径
使用 APT 安装后,JDK 通常位于 /usr/lib/jvm 目录下。可以通过以下命令确认实际路径:
bash
readlink -f $(which java)
输出通常类似:
text
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
因此 JDK 17 的安装目录为:
text
/usr/lib/jvm/java-17-openjdk-amd64
也可以直接查看:
bash
ls /usr/lib/jvm/
配置 JAVA_HOME 环境变量
虽然 APT 安装后 java 和 javac 命令通常可以直接使用,但很多应用,例如 Maven、Gradle、Spring Boot、Tomcat 等,仍需要正确配置 JAVA_HOME。
方法一:为当前用户配置
编辑当前用户的 Bash 配置文件:
bash
vim ~/.bashrc
在文件末尾添加:
bash
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
保存后执行:
bash
source ~/.bashrc
验证:
bash
echo $JAVA_HOME
java -version
方法二:为所有用户配置
如果希望所有用户都能使用相同的 Java 环境,可以编辑全局配置:
bash
sudo vim /etc/profile
在文件末尾添加:
bash
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
保存后执行:
bash
source /etc/profile
方法三:使用 /etc/profile.d 独立配置
更推荐的做法是在 /etc/profile.d 下创建独立脚本,避免直接修改 /etc/profile:
bash
sudo vim /etc/profile.d/java.sh
添加:
bash
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
保存后执行:
bash
source /etc/profile.d/java.sh
这种方式更规范,也便于后续维护和卸载。
多版本 Java 管理
如果系统中同时安装了多个 Java 版本,可以使用 update-alternatives 进行切换。
查看当前可用版本:
bash
sudo update-alternatives --config java
输出类似:
text
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 auto mode
1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 manual mode
2 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 manual mode
输入对应编号即可切换默认 Java 版本。
同样可以切换编译器版本:
bash
sudo update-alternatives --config javac
编写测试程序
创建一个简单测试文件,确认 JDK 环境完全可用:
bash
vim Hello.java
写入以下内容:
java
public class Hello {
public static void main(String[] args) {
System.out.println("JDK 17 环境配置成功");
}
}
编译并运行:
bash
javac Hello.java
java Hello
如果输出 JDK 17 环境配置成功,说明 JDK 17 环境已经可以正常使用。
常见问题
java: command not found
说明 JDK 未安装或环境变量未生效。先执行:
bash
sudo apt install -y openjdk-17-jdk
再重新加载环境变量:
bash
source ~/.bashrc
JAVA_HOME 为空
检查环境变量文件是否已保存,并确认是否执行了 source 命令。也可以重新登录终端后再次执行:
bash
echo $JAVA_HOME
安装了多个 Java 版本,版本不一致
执行:
bash
sudo update-alternatives --config java
sudo update-alternatives --config javac
确认默认版本指向 JDK 17。
javac 找不到
说明只安装了 JRE,没有安装 JDK。需要安装完整开发套件:
bash
sudo apt install -y openjdk-17-jdk