题接上文,继docker容器的进行操作的方案放弃后,我便使用了自动化脚本的方式。 相较于mysql的自动化,jdk的自动化部署要简易很多。
源码如下:
#!bin/sh
jdk_version_targz=$1
mkdir /usr/local/java
tar -zxvf ${jdk_version_targz} -C /usr/local/java #解压文件
cd /usr/local/java/
for i in `ls`
do
jdkname=$i
done
cd ~
cat >> /etc/profile <<EOF
JAVA_HOME=/usr/local/java/${jdkname}
JRE_HOME=/usr/local/java/${jdkname}/jre
PATH=\$PATH:/usr/local/java/${jdkname}/bin
CLASSPATH=/usr/local/java/${jdkname}/lib
export JAVA_HOME JRE_HOME CLASS_PATH PATH
EOF
. /etc/profile
java -version
备注:
运行该脚本,要求同级目录下具有jdk的gz压缩包;
要求具有访问/usr/local权限的用户角色;
踩坑记录:
1.在shell 中明明 source /etc/profile了呀?? 咋java -version找不到命令呢? 卖个关子。
2.我的命令咋丢失了? ls? vim? clear? PATH被我玩坏了! /bin/vim 的方式去操作profile 修正PATH
3.EOF 中的 需要转义$PATH --> \$PATH, 否则看起来很长一串,影响心情;
使用说明:
方案一:sh autodeploy_jdk.sh jdk.xxxx.xxx.tar.gz, 不出意外的话,很快就好了,java -version 无效; 执行source /etc/profile ,在 java -version 成功;
方案二: source autodeploy_jdk.sh jdk.xxx.xxx.tar.gz, 之后,java -version 有效,美滋滋!
使用截图: