jdk安装自动化
阅读原文时间:2023年08月09日阅读:1

写个在linux环境安装Java的脚本(install_java.sh),只需将jdk上传至/opt目录下,执行脚本即可。

#!/bin/bash
#author:zhangyl
#本安装使用jdk版本:jdk-8u191-linux-x64.tar.gz

#将jdk上传到/opt目录下
#/opt目录下检查jdk是否存在
cd /opt
jarFileNum=`ls .|grep jdk-8u191-linux-x64.tar.gz*$|wc -l`
if [ $jarFileNum -ne 1 ];then
echo "请确保当前目录中有且仅有一个jdk文件"
exit 1
fi

echo 发现 `ls jdk*` 存在,即将启动

#解压jdk到/usr/local目录
tar -zxvf /opt/jdk-8u191-linux-x64.tar.gz -C /usr/local

#配置jdk环境变量
#sed -i '$a export JAVA_HOME=/usr/local/jdk1.8.0_191\nexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar\nexport PATH=$JAVA_HOME/bin:$PATH' /etc/profile
#or 以下方式配置
echo 'export JAVA_HOME=/usr/local/jdk1.8.0_191
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile

#加载环境变量

source /etc/profile

#打印jdk版本
java -version

jdk-8u191-linux-x64.tar.gz下载链接:https://pan.baidu.com/s/1qdll6ig1NKl0GnqmwqdvaA 提取码:5tm0


脚本调试问题记录:
配置jdk环境变量,出现如下问题:

原因是脚本中jdk配置用了双引号:

echo "export JAVA_HOME=/usr/local/jdk1.8.0_191
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH" >> /etc/profile

改为单引号即可解决。


单、双引号区别,以下说明:

1. 单引号:

单引号定义字符串所见即所得,即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号是全引用,被单引号括起的内容不管是常量还是变量都不会发生替换。

ll=nginx
echo '$ll'

输出:

$ll

2. 双引号:

双引号引用的内容,所见非所得。如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容。双引号是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。

ll=nginx
echo "$ll"

输出:

nginx