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