Files
gerrit/install_java17.sh

107 lines
3.1 KiB
Bash
Raw Permalink Normal View History

2025-12-22 17:12:39 +08:00
#!/bin/bash
# Java 17 安装脚本
# 提供多个下载源选项
set -e
JAVA_VERSION="17.0.12"
JAVA_DIR="/opt/java17"
INSTALL_DIR="$HOME"
echo "=========================================="
echo "Java 17 安装脚本"
echo "=========================================="
# 检查是否已安装 Java 17
if [ -d "$JAVA_DIR" ] && [ -f "$JAVA_DIR/bin/java" ]; then
CURRENT_VERSION=$($JAVA_DIR/bin/java -version 2>&1 | head -1)
if echo "$CURRENT_VERSION" | grep -q "17"; then
echo "Java 17 已安装: $CURRENT_VERSION"
echo "配置为默认版本..."
sudo alternatives --install /usr/bin/java java $JAVA_DIR/bin/java 2
sudo alternatives --install /usr/bin/javac javac $JAVA_DIR/bin/javac 2
sudo alternatives --config java <<< "2"
java -version
exit 0
fi
fi
# 下载选项
echo "请选择下载源:"
echo "1. GitHub (Adoptium) - 需要良好的网络连接"
echo "2. 手动下载后安装"
echo "3. 使用系统包管理器(如果可用)"
read -p "请选择 (1-3): " choice
case $choice in
1)
echo "正在从 GitHub 下载 Java 17..."
cd $INSTALL_DIR
URL="https://github.com/adoptium/temurin17-binaries/releases/download/jdk-${JAVA_VERSION}%2B7/OpenJDK17U-jdk_x64_linux_hotspot_${JAVA_VERSION}_7.tar.gz"
wget "$URL" -O java17.tar.gz || {
echo "下载失败,请尝试其他选项"
exit 1
}
;;
2)
echo "请手动下载 Java 17 并保存为 java17.tar.gz"
echo "下载地址: https://adoptium.net/zh-CN/temurin/releases/?version=17"
read -p "下载完成后,请将文件放在 $INSTALL_DIR/java17.tar.gz然后按回车继续..."
if [ ! -f "$INSTALL_DIR/java17.tar.gz" ]; then
echo "错误: 未找到 java17.tar.gz 文件"
exit 1
fi
;;
3)
echo "尝试使用系统包管理器..."
# 检查是否有可用的 Java 17 包
if yum list available | grep -q "java-17"; then
sudo yum install -y java-17-openjdk java-17-openjdk-devel
sudo alternatives --config java
java -version
exit 0
else
echo "系统仓库中没有 Java 17请选择其他选项"
exit 1
fi
;;
*)
echo "无效选择"
exit 1
;;
esac
# 解压和安装
echo "正在解压..."
cd $INSTALL_DIR
tar -xzf java17.tar.gz
echo "正在安装到 $JAVA_DIR..."
sudo mkdir -p $JAVA_DIR
sudo mv jdk-${JAVA_VERSION}+7/* $JAVA_DIR/
sudo chown -R root:root $JAVA_DIR
# 配置 alternatives
echo "配置 Java 17 为默认版本..."
sudo alternatives --install /usr/bin/java java $JAVA_DIR/bin/java 2
sudo alternatives --install /usr/bin/javac javac $JAVA_DIR/bin/javac 2
# 选择 Java 17
echo "2" | sudo alternatives --config java > /dev/null 2>&1 || {
echo "请手动选择 Java 17:"
sudo alternatives --config java
}
# 验证安装
echo ""
echo "=========================================="
echo "安装完成!"
echo "=========================================="
java -version
echo ""
echo "Java 17 已安装到: $JAVA_DIR"
echo "现在可以继续安装 Gerrit 了!"