---
description: Ubuntu 自动安装多个 JDK 版本 + 管理切换脚本，适用于 Ubuntu 20.04 及以上，支持 OpenJDK 8、11、17、21。
---

# Java

📜 脚本名称：`setup-multi-java.sh`

```bash
#!/bin/bash

set -e

echo "🧩 正在更新系统软件源..."
sudo apt update

echo "📦 安装 OpenJDK 8, 11, 17, 21..."
sudo apt install -y openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk openjdk-21-jdk

echo "🔗 注册所有 JDK 到 update-alternatives..."

# 定义每个版本路径
declare -A jdks=(
    [8]="/usr/lib/jvm/java-8-openjdk-amd64"
    [11]="/usr/lib/jvm/java-11-openjdk-amd64"
    [17]="/usr/lib/jvm/java-17-openjdk-amd64"
    [21]="/usr/lib/jvm/java-21-openjdk-amd64"
)

# 注册 java 和 javac
for version in "${!jdks[@]}"; do
    path="${jdks[$version]}"
    if [ -d "$path" ]; then
        sudo update-alternatives --install /usr/bin/java java "$path/bin/java" "$((1000 + version))"
        sudo update-alternatives --install /usr/bin/javac javac "$path/bin/javac" "$((1000 + version))"
        echo "✅ 已注册 JDK $version"
    else
        echo "⚠️  路径不存在：$path，跳过"
    fi
done

echo "📌 当前默认 Java 版本："
java -version

echo "✅ 你可以使用以下命令切换默认版本："
echo "📁 sudo update-alternatives --config java"
echo "📁 建议运行例如 './use-java11.sh' 来切换 JAVA_HOME 并激活"

```



### 📁 脚本使用方法

#### 1. 保存脚本

保存为 `setup-multi-java.sh` 文件。

#### 2. 赋予可执行权限

```bash
chmod +x setup-multi-java.sh
```

#### 3. 运行安装

```bash
./setup-multi-java.sh
```

***

### ⚙️ 可选：版本快速切换脚本（推荐）

为方便快速切换，可创建快捷脚本，如：

#### 📄 `use-java8.sh`

```bash
#!/bin/bash
JDK_PATH="/usr/lib/jvm/java-8-openjdk-amd64"

sudo update-alternatives --set java $JDK_PATH/bin/java
sudo update-alternatives --set javac $JDK_PATH/bin/javac

echo "✅ Java 已切换到：$JDK_PATH"

# 设置 JAVA_HOME（只对当前 shell 有效）
export JAVA_HOME=$JDK_PATH
export PATH=$JAVA_HOME/bin:$PATH
echo "✅ JAVA_HOME 已设置为：$JAVA_HOME"

# 打印版本
java -version
```

#### 📄 `use-java11.sh`

```bash
#!/bin/bash
JDK_PATH="/usr/lib/jvm/java-11-openjdk-amd64"

sudo update-alternatives --set java $JDK_PATH/bin/java
sudo update-alternatives --set javac $JDK_PATH/bin/javac

echo "✅ Java 已切换到：$JDK_PATH"

# 设置 JAVA_HOME（只对当前 shell 有效）
export JAVA_HOME=$JDK_PATH
export PATH=$JAVA_HOME/bin:$PATH
echo "✅ JAVA_HOME 已设置为：$JAVA_HOME"

# 打印版本
java -version
```

依此类推创建 `use-java17.sh`、`use-java21.sh`。

赋予执行权限：

```bash
chmod +x use-java*.sh
```

***

### 🧪 验证

```bash
java -version
javac -version
```

***

需要我将这些脚本打包成 `.zip` 发给你，或帮你生成一键安装脚本压缩包也可以告诉我。
