Files
gerrit/install_java17.sh
2025-12-22 17:12:39 +08:00

107 lines
3.1 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 了!"