安装jdk步骤
将Linux安装jdk的步骤放入shell脚本中
#!/bin/bash
# 阿里云服务器专用 - 全自动安装 OpenJDK 1.8(无交互)
# 仅支持 yum 系系统(CentOS/RHEL/Alibaba Cloud Linux)# 检查 root 权限
if [ "$(id -u)" -ne 0 ]; thenecho "错误:请使用 sudo 或以 root 用户运行!" >&2exit 1
fi# 检查系统类型
if ! command -v yum &>/dev/null; thenecho "错误:仅支持 yum 系系统(CentOS/RHEL/Alibaba Cloud Linux)!" >&2exit 1
fi# 卸载旧版 JDK(静默操作)
echo "正在清理旧版 JDK..."
yum remove -y java-* &>/dev/null
rm -rf /usr/lib/jvm/* /etc/profile.d/jdk.sh# 安装 OpenJDK 1.8(静默安装)
echo "正在安装 OpenJDK 1.8..."
yum install -y java-1.8.0-openjdk-devel &>/dev/nullif ! command -v java &>/dev/null; thenecho "安装失败!请检查 yum 源配置。" >&2exit 1
fi# 自动配置环境变量
JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
cat > /etc/profile.d/jdk.sh <<EOF
export JAVA_HOME=$JAVA_HOME
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib
export PATH=\$PATH:\$JAVA_HOME/bin
EOFsource /etc/profile.d/jdk.sh# 验证安装
echo "安装完成!OpenJDK 版本:"
java -version
echo -e "\nJAVA_HOME: $JAVA_HOME"
另一种方式实现,阿里云服务器
#!/bin/bash
# Description: 一键安装 JDK 8(支持 Oracle JDK 和 OpenJDK,适配阿里云环境)
# Author: Your Name
# Date: $(date +%Y-%m-%d)# 检查是否为 root 用户
if [ "$(id -u)" -ne 0 ]; thenecho "请使用 sudo 或以 root 用户运行此脚本!"exit 1
fi# 配置参数
JDK_VERSION="8"
ORACLE_JDK_URL="https://download.oracle.com/otn/java/jdk/8u381-b09/jdk-8u381-linux-x64.tar.gz" # 替换为最新版链接
INSTALL_DIR="/usr/lib/jvm"
PROFILE_FILE="/etc/profile.d/jdk.sh"# 检测系统类型
if [ -f /etc/os-release ]; then. /etc/os-releaseOS=$ID
elseecho "无法检测系统类型!"exit 1
fi# 卸载旧版本 JDK(可选)
function remove_old_jdk() {echo "正在检查并卸载旧版 JDK..."case $OS inubuntu|debian)apt-get remove -y openjdk-* >/dev/null 2>&1;;centos|rhel|almalinux|rocky|alinux)yum remove -y java-* >/dev/null 2>&1;;*)echo "未知系统类型,跳过卸载旧版 JDK。";;esac
}# 安装 OpenJDK 8
function install_openjdk() {echo "正在安装 OpenJDK ${JDK_VERSION}..."case $OS inubuntu|debian)apt-get updateapt-get install -y openjdk-8-jdk;;centos|rhel|almalinux|rocky|alinux)yum install -y java-1.8.0-openjdk-devel;;*)echo "不支持的系统类型!"exit 1;;esac
}# 安装 Oracle JDK 8
function install_oracle_jdk() {echo "正在安装 Oracle JDK ${JDK_VERSION}..."# 安装依赖case $OS inubuntu|debian)apt-get updateapt-get install -y wget tar;;centos|rhel|almalinux|rocky|alinux)yum install -y wget tar;;esac# 下载并解压mkdir -p $INSTALL_DIRwget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \-O /tmp/jdk-${JDK_VERSION}.tar.gz $ORACLE_JDK_URLif [ $? -ne 0 ]; thenecho "下载 Oracle JDK 失败!请检查网络或手动下载。"exit 1fitar -zxvf /tmp/jdk-${JDK_VERSION}.tar.gz -C $INSTALL_DIRrm -f /tmp/jdk-${JDK_VERSION}.tar.gz# 查找解压后的目录JDK_DIR=$(find $INSTALL_DIR -maxdepth 1 -type d -name "jdk1.8*" | head -n 1)if [ -z "$JDK_DIR" ]; thenecho "找不到 JDK 目录!安装失败。"exit 1fi# 设置环境变量echo "export JAVA_HOME=$JDK_DIR" > $PROFILE_FILEecho "export JRE_HOME=\$JAVA_HOME/jre" >> $PROFILE_FILEecho "export CLASSPATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib" >> $PROFILE_FILEecho "export PATH=\$PATH:\$JAVA_HOME/bin" >> $PROFILE_FILEsource $PROFILE_FILE# 设置默认 JDKupdate-alternatives --install "/usr/bin/java" "java" "$JDK_DIR/bin/java" 1000update-alternatives --install "/usr/bin/javac" "javac" "$JDK_DIR/bin/javac" 1000update-alternatives --set java "$JDK_DIR/bin/java"update-alternatives --set javac "$JDK_DIR/bin/javac"
}# 主菜单
function main() {echo "===================================="echo " JDK 8 安装脚本(适配阿里云服务器)"echo "===================================="echo "1. 安装 OpenJDK 8(推荐)"echo "2. 安装 Oracle JDK 8"echo "3. 退出"read -p "请选择安装类型 [1-3]: " choicecase $choice in1)remove_old_jdkinstall_openjdk;;2)remove_old_jdkinstall_oracle_jdk;;3)echo "已取消安装。"exit 0;;*)echo "无效输入!"exit 1;;esac# 验证安装echo "安装完成!验证 Java 版本:"java -versionecho "JAVA_HOME: $JAVA_HOME"
}# 执行主函数
main