直接用sudo apt install openjdk-17-jdk即可,ubuntu自动注册路径、创建软链并加入update-alternatives,无需手动配置java_home或解压tar.gz;验证需java -version与javac -version输出一致的17.x.x版本。

直接用 sudo apt install openjdk-17-jdk 就行,不用额外配环境变量,也不用手动解压 tar.gz —— 这是当前 Ubuntu(22.04+ / 24.04 LTS)最稳、最省事的方式。
为什么不用自己下载 tar.gz 配 JAVA_HOME
手动解压安装后常出现 javac 找不到、Maven 编译报 UnsupportedClassVersionError、IDE 识别错版本,根源几乎都是 JAVA_HOME 指向错误路径,或没注册到 update-alternatives。Ubuntu 的 openjdk-*-jdk 包会自动完成三件事:注册 /usr/lib/jvm/xxx 路径、创建 /usr/bin/java 和 /usr/bin/javac 软链、把 JDK 加入系统级替代链。你执行 java -version 和 javac -version 输出一致,就说明已就绪。
Ubuntu 上怎么选对包名
不同版本对应不同包名,别写错空格或连字符:
-
openjdk-8-jdk(旧项目兼容用) -
openjdk-11-jdk(LTS,部分老框架仍依赖) -
openjdk-17-jdk(当前主流 LTS,Spring Boot 3.x 默认要求) -
openjdk-21-jdk(最新 LTS,2023 年发布,部分新特性需此版本) -
default-jdk(自动装当前仓库默认 LTS,通常是 17 或 21,但版本不可控)
查可用版本:apt list -a openjdk-*-jdk;装完验证必须同时跑:java -version 和 javac -version —— 两者输出主版本号(如 17)必须完全一致。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
装完要不要设 JAVA_HOME
绝大多数场景下 不用手动设:mvn、gradle、IntelliJ IDEA 都能通过 which java 自动定位 JDK。只有两类情况才需要显式配置:
- 部署 Spring Boot 应用时,某些启动脚本(如
systemdservice 文件)硬依赖$JAVA_HOME - 服务器上运行多个 JDK 版本,且某个应用明确要求固定路径(比如 Hadoop 3.3+ 要求
JAVA_HOME指向 JDK 8)
若真要设,路径不是猜的:readlink -f $(which java) 输出的 bin 目录上一级就是正确 JAVA_HOME,例如 /usr/lib/jvm/java-17-openjdk-amd64 —— 注意末尾带架构名(amd64 或 arm64),别漏掉。
多 JDK 版本共存时切换失败的常见原因
只运行 sudo update-alternatives --config java 是不够的,javac 不会同步切过去。容易踩的坑:
-
java切了,但javac还在旧版本里 —— 必须单独执行一次sudo update-alternatives --config javac - 切换后
which java和which javac指向不同路径 —— 用readlink -f $(which java)和readlink -f $(which javac)对比,必须指向同一/usr/lib/jvm/xxx子目录 - 终端新开一个 tab 没生效 ——
source ~/.bashrc不影响已打开的 shell,要么重开终端,要么重新登录
真正可靠的验证方式就一句:java -version && javac -version,两行输出开头数字一致才算到位。










