shell脚本安装配置Java环境

176 阅读1分钟

由于新项目重新部署,所以需要重新安装服务器环境,为了避免重复大量的操作,于是写个shell脚本实现快速安装Java环境

阅读前提,了解简单的shell脚本和常用的linux命令

脚本如下

#!/bin/sh

jdkTargz="jdk-8u281-linux-x64.tar.gz"
echo "${jdkTargz}"

# 查询是否有jdk.tar.gz
if [ -e $jdkTargz ];
then

echo "— — 存在jdk压缩包 — —"
echo "正在解压jdk压缩包..."

tar -zxvf ${jdkTargz}

echo "解压jdk压缩包完成"
 echo "---------------------------------"
 echo "正在配置jdk环境..."

 sed -i '$a export JAVA_HOME=/usr/local/java/jdk1.8.0_281' /etc/profile
 sed -i '$a export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' /etc/profile
 sed -i '$a export PATH=$PATH:$JAVA_HOME/bin' /etc/profile

 echo "---------------------------------"
 echo "JAVA环境配置已完成..."
 echo "---------------------------------"
 echo "正在重新加载配置文件..."
 echo "---------------------------------"
 source /etc/profile
 echo "配置版本信息如下:"

 java -version
else
 echo "未检测到安装包,请将安装包放到/usr/local/java目录下"
fi

遇到的问题

当脚本执行成功以后,显示都正常安装了,但是我们自己输入 Java -version 会报错,

解决

我们需要手动执行一下 source /etc/profile

原因

运行一个 shell 脚本时,它在一个非交互式 shell 中运行,这意味着它不会加载用户的 shell 配置文件

脚本在一个单独的 shell 进程中执行,不继承父 shell 的环境。这是一个安全功能,以防止脚本修改父 shell 的环境