【云原生技术】Linux下如何安装jdk

Linux下如何安装jdk

  • 一、方式 1:用系统软件仓库安装 OpenJDK
  • 二、方式 2:下载官方二进制包手动安装
  • 三、方式 3:SDKMAN!(开发者首选的版本管理器)
  • 四、设置 JAVA_HOME(所有方式通用)
  • 五、卸载或切换版本
  • 六、常见问题速查

以下内容以最常见的两条发行版家族(Debian/Ubuntu 和 RHEL/CentOS/Rocky)为例,给出 Linux 下安装 JDK 的 3 种主流方式:

  1. 系统仓库安装 OpenJDK(最快、维护简单)
  2. 官方二进制包手动部署(多版本并存或用 Oracle JDK 时常用)
  3. SDKMAN! 管理多版本(开发者个人机器友好)

安装完成后统一介绍 JAVA_HOME 与 alternatives 配置及验证步骤。

────────────────────────

一、方式 1:用系统软件仓库安装 OpenJDK

────────────────────────

  1. Debian/Ubuntu

    # 可选更新索引
    sudo apt update
    # 安装指定版本(11/17/21 可换)
    sudo apt install openjdk-17-jdk
    
  2. RHEL/CentOS 7/8/9 / Rocky / Alma

    sudo yum install java-17-openjdk-devel    # CentOS 7
    # 或
    sudo dnf install java-17-openjdk-devel    # CentOS/RHEL 8+、Rocky
    
  3. 验证

    java -version      # 输出版本号
    javac -version
    

优点:自动升级、自动安全补丁。缺点:版本选择受仓库限制。

────────────────────────

二、方式 2:下载官方二进制包手动安装

────────────────────────
适用:
• 需要 Oracle JDK、GraalVM、Azul Zulu 等特定发行版
• 需要同时保留多版本且不想影响系统包

以 OpenJDK 17 HotSpot (tar.gz) 为例:

# 1. 创建统一目录
sudo mkdir -p /opt/jdk
cd /opt/jdk

# 2. 下载并解压
sudo wget https://download.java.net/openjdk/jdk17/ri/openjdk-17+35_linux-x64_bin.tar.gz
sudo tar -xf openjdk-17+35_linux-x64_bin.tar.gz
sudo mv jdk-17+35 openjdk-17

# 3. 配置 alternatives(系统级)——可并存多版本
sudo update-alternatives --install /usr/bin/java java /opt/jdk/openjdk-17/bin/java 1710
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk/openjdk-17/bin/javac 1710
sudo update-alternatives --config java    # 在多版本时可手动切换

如果系统无 update-alternatives(老 CentOS),可手动建软链或写 wrapper 脚本。

────────────────────────

三、方式 3:SDKMAN!(开发者首选的版本管理器)

────────────────────────

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

# 查看可用版本
sdk list java

# 安装并设置默认
sdk install java 17.0.10-tem               # Temurin 17
sdk default java 17.0.10-tem

优点:快速切换、自动配置环境变量;缺点:仅对当前用户生效,不适合系统服务。

────────────────────────

四、设置 JAVA_HOME(所有方式通用)

────────────────────────

  1. 查找安装路径

    readlink -f $(which java)        # /opt/jdk/openjdk-17/bin/java
    
  2. 追加到系统或用户环境
    • 系统级:/etc/profile.d/java.sh
    • 用户级:~/.bashrc / ~/.zshrc

    示例脚本:

    export JAVA_HOME=/opt/jdk/openjdk-17
    export PATH=$JAVA_HOME/bin:$PATH
    
  3. 使之生效

    source /etc/profile   # 或重新登录
    
  4. 检验

    echo $JAVA_HOME
    javac -version
    

────────────────────────

五、卸载或切换版本

────────────────────────
• 仓库安装:sudo apt remove openjdk-17-jdksudo dnf remove ...
• alternatives:sudo update-alternatives --config java 选择其他版本,或 --remove 删除。
• SDKMAN!:sdk uninstall java

────────────────────────

六、常见问题速查

────────────────────────

  1. 找不到 javac → 只装了 JRE,需安装 *-jdk*-devel
  2. bash: java: command not found → PATH/alternatives 未配置或 shell 未重新加载
  3. 服务启动报 “Unsupported major.minor” → 应用编译版本高于运行时 JDK,需升级运行 JDK 或降低编译版本。

通过以上任一方法,即可在 Linux 上成功部署并管理 JDK。如需 Docker 镜像、ARM 架构、或多用户共存策略等进一步说明,欢迎继续提问!

你可能感兴趣的:(linux,java,运维)