linux下安装jdk主要有包管理器自动安装和手动解压配置两种方式:前者如ubuntu用sudo apt install openjdk-17-jdk、centos用sudo dnf install java-17-openjdk-devel,系统自动配置路径与环境变量;后者需下载tar.gz包解压到指定目录(如/usr/local/java),通过/etc/profile.d/java.sh设置java_home和path,并source生效;多版本共存时推荐用update-alternatives统一管理。

Linux 下安装 JDK 主要分两种方式:用包管理器自动装(适合大多数场景),或手动下载解压配置(适合需要特定版本或离线环境)。关键不是“能不能装”,而是选对方法、配对路径、避免变量写错。
推荐新手用包管理器一键安装
系统会自动处理路径、符号链接和基础环境变量,不用碰 profile 文件。
-
Ubuntu/Debian:运行
sudo apt update && sudo apt install -y openjdk-17-jdk。装完直接执行java -version和javac -version验证 -
CentOS/RHEL/Rocky 8+:运行
sudo dnf install -y java-17-openjdk-devel。注意必须带-devel,否则没有javac - 装好后,
JAVA_HOME通常指向/usr/lib/jvm/java-17-openjdk-*,可通过readlink -f $(which java)查看真实路径
手动安装需注意三个硬性步骤
适用于官网下载 tar.gz 包、无外网、或需固定版本(如 JDK 8、JDK 11)的场景。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 把压缩包解压到统一位置,比如
sudo tar -xzf jdk-11.0.20_linux-x64_bin.tar.gz -C /usr/local/java/ - 编辑全局环境变量文件:
sudo nano /etc/profile.d/java.sh(比改/etc/profile更规范),写入两行:export JAVA_HOME=/usr/local/java/jdk-11.0.20export PATH=$JAVA_HOME/bin:$PATH - 执行
source /etc/profile.d/java.sh生效,再用echo $JAVA_HOME和java -version双重确认
JAVA_HOME 路径不能凭感觉写
常见错误是把 JRE_HOME 单独设成子目录,或漏掉 bin;其实 JDK 11+ 已取消独立 JRE,JAVA_HOME 直接指向解压后的根目录即可。
- 正确示例:
/usr/local/java/jdk-11.0.20(该目录下有bin/、lib/、conf/) - 错误写法:
/usr/local/java/jdk-11.0.20/jre(JDK 11+ 不再提供此结构)或/usr/local/java/jdk-11.0.20/bin(多了/bin) - 验证是否生效:运行
which java应输出$JAVA_HOME/bin/java的符号链接路径
多版本共存时用 alternatives 管理
如果系统里同时装了 JDK 8、11、17,又想随时切换默认版本,别硬改环境变量——用系统自带的 update-alternatives。
- 先注册各版本:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1 - 再交互式选择:
sudo update-alternatives --config java,按提示输入编号即可切换 - 同理可配置
javac、jar等命令,保持工具链一致
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










