Linux安装JDK核心是选对方式并配好环境变量:包管理器适合新手(如Ubuntu用apt、CentOS用yum),手动解压适合指定版本或离线环境,多版本共存推荐update-alternatives或sdkman。

在 Linux 系统安装 JDK,核心就两件事:选对方式装好 JDK,再配对环境变量。不同场景推荐不同方法,关键看你是要快速上手、精准控制版本,还是管理多个 JDK。
包管理器安装(适合新手和日常开发)
系统自带的包管理器最省心,自动处理依赖、路径和基础配置,适合 Ubuntu/Debian 或 CentOS/RHEL 用户。
-
Ubuntu/Debian:运行
sudo apt update && sudo apt install openjdk-17-jdk,装完就能直接用java -version验证 -
CentOS/RHEL:用
sudo yum install java-17-openjdk-devel(或 dnf),开发包含javac和调试工具 - 默认安装路径通常是
/usr/lib/jvm/,比如/usr/lib/jvm/java-17-openjdk-amd64,可执行文件已软链到/usr/bin/java
手动解压安装(适合指定版本或离线环境)
从 Adoptium(Eclipse Temurin)或 Oracle 下载 tar.gz 包,适用于需要特定构建、企业合规要求,或服务器没外网的情况。
- 解压到统一目录,例如:
sudo tar -xzf jdk-17.0.6_linux-x64_bin.tar.gz -C /usr/local/ - 建议创建软链接方便切换:
sudo ln -sf /usr/local/jdk-17.0.6 /usr/local/java - 配置全局环境变量:编辑
/etc/profile或用户级~/.bashrc,加入三行:export JAVA_HOME=/usr/local/javaexport PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
java-api-doc-generator下载分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
- 立即生效:
source /etc/profile(全局)或source ~/.bashrc(当前用户)
多版本共存与切换(适合 Java 工程师)
当项目需兼容 Java 8/11/17/21 时,光靠改 JAVA_HOME 不够稳定,推荐用系统级工具统一管理。
立即学习“Java免费学习笔记(深入)”;
-
update-alternatives(系统原生):把多个 JDK 的
java、javac注册进去,例如:sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk-17.0.6/bin/java 1sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk-17.0.6/bin/javac 1
然后用sudo update-alternatives --config java交互式切换 -
sdkman(用户级,更灵活):适合非 root 用户或 CI 环境,一行安装:
curl -s "https://get.sdkman.io" | bash && source "$HOME/.sdkman/bin/sdkman-init.sh"
接着sdk install java 17.0.6-tem,再sdk use java 17.0.6-tem即可临时切换
验证与常见问题
装完别急着写代码,先确认三件事是否都 OK:
-
java -version—— 显示版本号且不报错 -
javac -version—— 编译器可用(部分包管理器只装 JRE,记得选-jdk或-devel) -
echo $JAVA_HOME—— 输出路径准确,且该路径下确实存在bin/java - 如果命令提示“command not found”,大概率是
PATH没加对,检查source是否执行成功,或终端是否新开 - 如果
JAVA_HOME显示为空,说明环境变量未加载,确认修改的是当前 shell 使用的配置文件(~/.bashrc对 Bash 有效,~/.zshrc对 Zsh 有效)

















