bash脚本一键安装Java和Maven环境
最近的毕设项目需要用到一键安装Java和Maven环境,并配置环境变量,中间遇到了一些坑,在这里记录一下。
#!/bin/bash
# check and install java1.8 and maven3.85
echo "check java version"
java -version
if [ $? -ne 0 ]; then
echo -e "java not found,install java:"
result=$(uname -m)
echo "machine:$result"
if [ "$result" = "x86_64" ]; then
url="https://mirrors.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz"
else
echo "unknow machine,please install java manually"
exit 1
fi
wget -nc $url #download if not exists
sudo mkdir /usr/lib/jvm
sudo tar -xvf jdk-8u202-linux-x64.tar.gz -C /usr/lib/jvm
echo '#Java Env' | sudo tee -a /etc/profile
echo 'export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_202' | sudo tee -a /etc/profile
echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' | sudo tee -a /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' | sudo tee -a /etc/profile
# rm -rf jdk-11u202-linux-x64.tar.gz
fi
echo -e "\ncheck maven version"
mvn -v
if [ $? -ne 0 ]; then
echo -e "maven not found,install maven:\n"
wget -nc --no-check-certificate https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
sudo tar -zxvf apache-maven-3.8.5-bin.tar.gz -C /usr/local/
echo 'export MAVEN_HOME=/usr/local/apache-maven-3.8.5' | sudo tee -a /etc/profile
echo 'export PATH=$PATH:$MAVEN_HOME/bin' | sudo tee -a /etc/profile
fi
source /etc/profile
遇到的第一个坑是正常的使用echo向文件追加内容,会出现权限不足的情况:
sudo echo "export PATH=$PATH:/usr/lib/jvm/jdk1.8.0_202" >> /etc/profile
bash: /etc/profile: Permission denied
原因是sudo只作用于echo 对后面的重定向不起作用。
解决方法具体可以看一下这个stackoverflow的回答。
How to write in /etc/profile using bash | Permission Denied
遇到的第二个坑是:
下载链接一开始使用的是oracle的官方下载链接,但是会遇到权限的问题。所以改用了华为镜像,其中不同的机器平台需要使用不同类型的JDK压缩包,这里只演示了x86_64机器的压缩包。