#!/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 并激活"
chmod +x setup-multi-java.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
#!/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
java -version
javac -version