第 3 篇:配置 JDK 17 环境

前面已经完成了 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
相关推荐
秋天的怀念_David1 小时前
算法一千零一夜 · 第十七夜 长街点灯
java·程序人生·算法
充值内卷1 小时前
C++单文件迷宫游戏:TauriCPP 开发全记录
开发语言·c++·游戏
Antruly1 小时前
C++ Web 开发选型漫谈:从 Drogon 到 libuvcpp + uvp,八个项目的定位、兼容性与务实排名
开发语言·前端·c++
EnCi Zheng1 小时前
AI Agent工具调用防护层怎么写-一份能直接跑的Python四层拦截实现
大数据·开发语言·python
不吃鱼的羊1 小时前
如何应对恐惧
java
不吃鱼的羊1 小时前
如何建立高自尊
java·服务器·前端
Zevalin爱灰灰1 小时前
Linux入门第一部分(Ubuntu入门篇) 第三章 shell脚本入门(一)
linux·ubuntu·嵌入式
Magicdata大数据1 小时前
AI辅助教学:调用大模型从教材中生成习题,方便学员练习
java·spring boot·大模型·知识图谱·neo4j·ai辅助教学
香蕉大香蕉(06敬畏市场)1 小时前
高频八股 · Java 并发编程(10):异步、ThreadLocal 与虚拟线程(收官)
java·开发语言·网络·jvm·python·ai·实习