Script-Collected/env/init_jdk.sh

73 lines
2.0 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
# JDK 17 安装脚本 for CentOS
# 作者awt
# 日期mx
# 检查是否以root用户运行
if [ "$(id -u)" -ne 0 ]; then
echo "请使用root用户或通过sudo运行此脚本"
exit 1
fi
# 安装必要依赖
echo "正在安装必要依赖..."
yum install -y wget tar gzip
# 设置JDK版本
JDK_VERSION="17.0.10"
JDK_BUILD="7"
JDK_ARCHIVE="jdk-${JDK_VERSION}_linux-x64_bin.tar.gz"
JDK_URL="https://download.oracle.com/java/${JDK_VERSION%%.*}/archive/jdk-${JDK_VERSION}_linux-x64_bin.tar.gz"
# 安装目录
INSTALL_DIR="/usr/lib/jvm"
JAVA_HOME_DIR="jdk-${JDK_VERSION}"
# 创建安装目录
mkdir -p ${INSTALL_DIR}
cd ${INSTALL_DIR}
# 下载JDK (使用--no-check-certificate和--no-cookies配合Oracle的复杂下载逻辑)
echo "正在下载JDK ${JDK_VERSION}..."
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" ${JDK_URL} -O ${JDK_ARCHIVE}
if [ $? -ne 0 ]; then
echo "JDK下载失败请检查网络连接或URL有效性"
exit 1
fi
# 解压安装
echo "正在安装JDK..."
tar -xzf ${JDK_ARCHIVE}
rm -f ${JDK_ARCHIVE}
# 设置环境变量
echo "配置环境变量..."
cat > /etc/profile.d/java.sh <<EOF
export JAVA_HOME=${INSTALL_DIR}/${JAVA_HOME_DIR}
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
# 加载环境变量
source /etc/profile.d/java.sh
# 更新alternatives系统
echo "设置系统默认Java..."
if [ -d "${INSTALL_DIR}/${JAVA_HOME_DIR}/bin" ]; then
update-alternatives --install "/usr/bin/java" "java" "${INSTALL_DIR}/${JAVA_HOME_DIR}/bin/java" 1000
update-alternatives --install "/usr/bin/javac" "javac" "${INSTALL_DIR}/${JAVA_HOME_DIR}/bin/javac" 1000
update-alternatives --set java "${INSTALL_DIR}/${JAVA_HOME_DIR}/bin/java"
update-alternatives --set javac "${INSTALL_DIR}/${JAVA_HOME_DIR}/bin/javac"
else
echo "Java二进制文件未找到安装可能失败"
exit 1
fi
# 验证安装
echo "验证Java版本..."
java -version
javac -version
echo "JDK ${JDK_VERSION} 安装完成!"
echo "JAVA_HOME 设置为: ${INSTALL_DIR}/${JAVA_HOME_DIR}"