Java

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

📜 脚本名称:setup-multi-java.sh

#!/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. 赋予可执行权限

chmod +x setup-multi-java.sh

3. 运行安装

./setup-multi-java.sh

⚙️ 可选:版本快速切换脚本(推荐)

为方便快速切换,可创建快捷脚本,如:

📄 use-java8.sh

#!/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

#!/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.shuse-java21.sh

赋予执行权限:

chmod +x use-java*.sh

🧪 验证

java -version
javac -version

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

Last updated