【Linux】如何用shell脚本一键安装Java和Maven环境

前言

无论是在云服务器上部署Java项目 还是在本地的Linux虚拟机上运行Java项目 都需要Java的环境 设置环境则需要一些繁琐的操作 为了简化并复用这些操作 我们可以封装这些操作为一个脚本 下面将展示shell脚本的具体写法 读者可以顺便复习一下Shell脚本的一些知识

脚本

Java安装脚本

#!/bin/sh

# 从命令行参数获取JDK源文件和目标目录
if [ "$#" -ne 2 ]; then
    echo "请提供正确的参数 首位为JDK压缩包路径 次位为JDK安装路径"
    exit 1
fi

JDK_SRC="$1"
JDK_DST="$2"

# 检查JDK源文件是否存在
if [ ! -f "$JDK_SRC" ]; then
    echo "JDK 安装文件不存在: $JDK_SRC"
    exit 1
fi

# 创建目标目录
mkdir -p "$JDK_DST"

# 复制JDK压缩包到目标目录
cp "$JDK_SRC" "$JDK_DST"

# 进入目标目录
cd "$JDK_DST"

# 解压JDK压缩包
tar -zxvf "$(basename "$JDK_SRC")"

# 获取解压后的JDK目录名称
JDK_DIR=$(tar -tzf "$(basename "$JDK_SRC")" | head -1 | cut -f1 -d"/")

# 配置环境变量
echo "export JAVA_HOME=$JDK_DST/$JDK_DIR" >> /etc/profile
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile
echo "export CLASSPATH=\$JAVA_HOME/jre/lib/ext:\$JAVA_HOME/lib/tools.jar" >> /etc/profile

# 使环境变量立即生效
source /etc/profile

# 输出安装完成
echo "Java installation completed."

# 输出Java版本
java -version

# 结束脚本
exit 0

使用方式

首先保存脚本为文件 可以首先创建一个空白文件 之后为赋给它执行权限

touch 文件名.sh
chmod +x 文件名.sh

在保证你已经上传了jdk的安装包之后 按照下面的方式进行
在这里插入图片描述
如图 我在/dev-ops下放置了java文件夹 并想要解压在这里 我可以这样使用这个脚本

sh install-java-script.sh /dev-ops/jdk-8u202-linux-x64.tar.gz /dev-ops/java

第一个参数是jdk的压缩包路径 而第二个是需要设置以及安装的环境变量的路径
注意: 执行此脚本之后仍有概率出现java -version时无法识别java命令 这时候需要再次刷新环境变量配置

 source /etc/profile

如果刷新之后仍然无法看到版本 可以查看一下脚本执行是否出现了错误

Java卸载脚本

#!/bin/sh

# 检查是否提供了JDK目标目录作为参数
if [ -z "$1" ]; then
    echo "请提供JDK目标目录作为参数!"
    exit 1
fi

# 使用第一个参数作为JDK目标目录
JDK_DST="$1"

# 获取JDK目录名称
if [ -d "$JDK_DST" ]; then
    JDK_DIR=$(ls "$JDK_DST" | grep 'jdk' | head -n 1)
else
    echo "JDK 目录不存在: $JDK_DST"
    exit 1
fi

# 删除JDK目录
echo "正在删除JDK目录..."
rm -rf "$JDK_DST/$JDK_DIR"

# 检查是否删除成功
if [ -d "$JDK_DST/$JDK_DIR" ]; then
    echo "JDK 目录删除失败."
    exit 1
else
    echo "JDK 目录已删除."
fi

# 移除环境变量配置
echo "正在移除环境变量配置..."
sed -i '/JAVA_HOME/d' /etc/profile
sed -i '/CLASSPATH/d' /etc/profile

# 重新加载环境变量
source /etc/profile

# 输出卸载完成
echo "Java remove completed."

# 结束脚本
exit 0

使用的方式是类似的 传入JDK安装时的目录即可

Maven安装脚本

#!/bin/bash

# 检查参数数量
if [ "$#" -ne 3 ]; then
    echo "请提供正确参数 第一位参数为Maven压缩包 第二位为要安装到的路径 第三位为文件夹名称"
    exit 1
fi

# 从命令行参数获取值
SOURCE_ZIP="$1"
TARGET_DIR="$2"
MAVEN_DIR_NAME="$3"
MAVEN_HOME="$TARGET_DIR/$MAVEN_DIR_NAME"

# 确保目标目录存在
mkdir -p "$TARGET_DIR"

# 复制zip文件到目标目录
cp "$SOURCE_ZIP" "$TARGET_DIR"

# 进入目标目录
cd "$TARGET_DIR"

# 解压缩文件
unzip "$SOURCE_ZIP"

# 配置环境变量并写入到 /etc/profile
echo "export MAVEN_HOME=$MAVEN_HOME" >> /etc/profile
echo 'export PATH=$PATH:$MAVEN_HOME/bin' >> /etc/profile

# 使环境变量配置立即生效
source /etc/profile

# 输出安装完成信息
echo "Maven installation completed."

# 显示Maven版本
mvn -version

使用方式同上

Maven卸载脚本

#!/bin/bash

# 检查是否提供了足够的参数
if [ -z "$1" ] || [ -z "$2" ]; then
    echo "请提供Maven目标目录和Maven目录名称作为参数!"
    echo "用法: $0 <target_directory> <maven_directory_name>"
    exit 1
fi

# 使用第一个参数作为TARGET_DIR
TARGET_DIR="$1"

# 使用第二个参数作为MAVEN_DIR_NAME
MAVEN_DIR_NAME="$2"

# 定义MAVEN_HOME
MAVEN_HOME="$TARGET_DIR/$MAVEN_DIR_NAME"

# 删除 Maven 目录
if [ -d "$MAVEN_HOME" ]; then
    rm -rf "$MAVEN_HOME"
    echo "Maven directory $MAVEN_HOME has been removed."
else
    echo "Maven directory $MAVEN_HOME does not exist."
fi

# 备份 /etc/profile
cp /etc/profile /etc/profile.bak

# 从 /etc/profile 中移除 Maven 环境变量
sed -i '/^export MAVEN_HOME/d' /etc/profile
sed -i '/^export PATH=\$PATH:\$MAVEN_HOME\/bin/d' /etc/profile

# 重新加载 /etc/profile
source /etc/profile

# 输出卸载完成信息
echo "Maven has been uninstalled."

# 结束脚本
exit 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值