Linux系统Java更新与升级实操指南
一 前置检查与准备
java -version、javac -version、which java、readlink -f $(which java)二 使用包管理器升级(推荐)
| 发行版与工具 | 更新索引 | 安装/升级指定版本 | 设置默认版本 |
|---|---|---|---|
| Debian/Ubuntu(APT) | sudo apt update |
sudo apt install openjdk-17-jdk(示例) |
sudo update-alternatives --config java |
| RHEL/CentOS 7(YUM) | sudo yum makecache |
sudo yum install java-17-openjdk-devel |
sudo alternatives --config java |
| Fedora/RHEL 8+(DNF) | sudo dnf makecache |
sudo dnf install java-17-openjdk-devel |
sudo alternatives --config java |
update-alternatives 或 alternatives 切换默认,再按需卸载旧包。三 手动安装与升级(下载安装包或解压版)
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gzsudo tar -xzf jdk-17_linux-x64_bin.tar.gz -C /usr/local/sudo update-alternatives --install /usr/bin/java java /usr/local/jdk-17/bin/java 2000sudo update-alternatives --config javasudo tee /etc/profile.d/jdk.sh <<'EOF'
export JAVA_HOME=/usr/local/jdk-17export PATH=$JAVA_HOME/bin:$PATHEOFsource /etc/profile.d/jdk.shjava -version、javac -version、echo $JAVA_HOMEupdate-alternatives --install。javac/javadoc 等工具,可为每个命令单独注册到 alternatives。四 多版本共存与切换
/usr/bin/java 等符号链接,支持交互选择与优先级。
update-alternatives --config java 或 alternatives --config java/usr/bin/java -> /etc/alternatives/java -> 实际JDK路径/bin/javacurl -s "https://get.sdkman.io" | bashsdk list java、sdk install java 17.0.9-tem、sdk default java 17.0.9-temgit clone https://github.com/jenv/jenv.git ~/.jenvecho 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(jenv init -)"' >> ~/.bashrc && source ~/.bashrcjenv add /usr/lib/jvm/jdk-17、jenv global 17、jenv local 11五 验证与常见问题处理
java -version、javac -versionwhich java、readlink -f $(which java)、echo $JAVA_HOMEHelloWorld.java 能编译与运行$JAVA_HOME/bin,或是否通过 update-alternatives 注册。~/.bashrc、~/.zshrc)或 /etc/profile.d/jdk.sh,并执行 source 重载。update-alternatives --config java 明确选择默认版本;必要时为 javac/javadoc 等也做 alternatives 配置。JAVA_HOME、以及是否被容器/进程内硬编码指定了路径。