Linux安装JDK有两条核心路径:一是用apt/dnf等包管理器一键安装OpenJDK(自动配置路径与符号链接,推荐新手和生产环境);二是手动下载tar.gz解压至/usr/lib/jvm等目录,并配置/etc/profile中的JAVA_HOME与PATH后source生效。

用 apt 或 dnf 一条命令装好(Ubuntu/Debian 或 CentOS/RHEL)
这是最省心的方式,系统自动处理路径、符号链接和基础环境变量,开发用的 javac 也一并装齐。
-
Ubuntu/Debian(如 22.04、24.04):
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才有编译器;旧版 CentOS 7 用yum,且需先启用 EPEL 仓库 -
自动生效原理:安装过程会调用
update-alternatives注册 Java,并把/usr/bin/java指向实际路径,PATH 里已有/usr/bin,所以无需额外配置环境变量
手动安装:下载 tar.gz → 解压 → 配环境变量(通用性强)
适用于 Oracle JDK、特定 OpenJDK 构建(如 Temurin)、或服务器无法联网但已有安装包的情况。
-
下载(以 OpenJDK 17 为例):
wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.2%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.2_8.tar.gz -
解压到标准位置(推荐
/usr/lib/jvm或/opt/java):sudo tar -zxvf OpenJDK17U-*.tar.gz -C /usr/lib/jvm/
解压后得到类似/usr/lib/jvm/jdk-17.0.2+8的目录 -
配置全局环境变量(编辑
/etc/profile):sudo vi /etc/profile,末尾追加:export JAVA_HOME=/usr/lib/jvm/jdk-17.0.2+8export PATH=$JAVA_HOME/bin:$PATH
保存后执行:source /etc/profile -
验证是否生效:
echo $JAVA_HOME→ 应输出路径java -version→ 显示正确版本
装多个 JDK?用 update-alternatives 切换(不冲突)
系统里既有 OpenJDK 11,又手动装了 JDK 17,想随时切换默认版本?不用改环境变量,用系统原生命令管理。
- 先注册所有 JDK:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17.0.2+8/bin/java 2 - 交互式选择默认版本:
sudo update-alternatives --config java
终端会列出选项,输入数字即可切换 - 同理可注册
javac:
把上面命令里的java替换成javac即可
常见卡点提醒
不是命令错了,而是几个细节容易忽略:
- 下载 Oracle JDK 需登录账号,且新版商用要许可——优先选 Adoptium/Temurin 或发行版自带 OpenJDK
-
java -version有输出,但javac报“command not found” → 装的是openjdk-17-jre(只有运行时),不是-jdk或-devel - 手动安装后
java -version不变 → 检查source /etc/profile是否执行,或确认$JAVA_HOME/bin是否在$PATH最前面 - 权限问题:解压目录建议用
sudo放到/usr/lib/jvm,避免普通用户无权访问


















