jdk自动安装

1.简介

由于平时工作中需要经常和服务器打交道,每次需要在新服务器上部署项目时安装jdk是必不可少的。每次都是重复的操作相当麻烦费时间,于是编写了一个简单的shell实现自动安装jdk,自动配置环境变量。
脚本主要分为主要分为4步
1、获取rpm安装包
2、检查卸载已安装的jdk
3、安装rpm包
4、写入环境变量
脚本基本实现了自动化安装,遗憾的是wget获取oracle官网的rpm包时需要认证,且认证后过一段时间会失效无法再次获取,暂时还没找到可以解决的办法。因此脚本中的wget获取rpm包那一行被我注释掉了。

可以在官网下载好rpm包后,rz上传到服务器和脚本同一个目录运行脚本即可安装。
没有安装rz命令

#安装rz、sz命令非常好用,rz上传文件到服务器,sz下载文件到本地
yum -y install lrzsz

也可以在网上找一个不用认证的链接wget获取,我当时是在官网认证后立即复制链接。

2.注意事项

需要注意的是执行脚本时,脚本和rpm包需要处在同一个目录中

3.shell脚本

#!/bin/bash
#wget获取rpm包
#wget https://download.oracle.com/otn/java/jdk/8u291-b10/d7fc238d0cbf4b0dac67be84580cfb4b/jdk-8u291-linux-x64.rpm?AuthParam=1622368722_9411cea1391e8919921490e5e6f01625
packagePath="jdk*"
echo "正在检测是否存在java相关文件..."
#检查是否已经安装java相关包,和jdk
uninstallJava=$(rpm -qa | grep java)
uninstallJdk=$(rpm -qa | grep jdk)
#检查是否安装,安装了就强制卸载掉
if [[ "$uninstallJava" != "" || "$uninstallJdk" != "" ]];then
echo -e "检测到文件 $uninstallJava $uninstallJdk \n 卸载中..."
rpm -e --nodeps $uninstall $uninstallJdk
echo "卸载完成!"
else
echo "未检测到相关文件..."
fi
#开始安装检查到的rpm包 packagePath="jdk*"
echo "开始安装..."
rpm -ivh $packagePath
#rpm包安装后会自动在/usr/目录中生成一个java/jdkxxxx的目录,检查这个目录是否存在
sunJava=$(ls /usr/java | grep jdk)

if [ "$sunJava" != "" ];then
echo "正在写环境变量..."
#在profile.写入jdk环境变量需要注意的是如果文件不存在会自动创建一个文件并写入内容
#如果文件存在且文件有内容,内容会被覆盖掉
cat >/etc/profile.d/java.sh<<EOF
JAVA_HOME=/usr/java/$sunJava
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export CLASSPATH
export PATH
EOF
echo "写入成功!"
chown root.root /etc/profile.d/java.sh
echo "安装成功!"
java -version
else 
echo "未检测到java目录..."
fi

4.tar包安装

tar包安装我的思路是,解压时自动mkdir一个java目录并将解压后的文件放到里面,在根据路径配置环境变量详细请看脚本

#!/bin/bash
#wget https://download.oracle.com/otn/java/jdk/8u291-b10/d7fc238d0cbf4b0dac67be84580cfb4b/jdk-8u291-linux-x64.tar.gz?AuthParam=1622622010_f516c40e832665045d1db3e681f9b8a0
packageName=$(ls | grep tar.gz)
echo "正在检测是否存在java相关文件..."
uninstallJava=$(rpm -qa | grep java)
uninstallJdk=$(rpm -qa | grep jdk)

if [[ "$uninstallJava" != "" || "$uninstallJdk" != "" ]];then
echo -e "检测到文件 $uninstallJava $uninstallJdk \n 卸载中..."
rpm -e --nodeps $uninstall $uninstallJdk
echo "卸载完成!"
else
echo "未检测到相关文件..."
fi

echo "开始安装..."
mkjava=$(ls | grep java)
if [ "$mkjava" == "" ];then
mkdir java
tar -xvf $packageName -C java
echo "解压成功!"
#解压目录名称
jdkPath=$(ls java | grep jdk)
#当前绝对路径
path="$(pwd)/java/"
#检测目录中是否存在jdk
if [ "$jdkPath" != "" ];then
echo "正在写环境变量..."
#写入环境变量
cat >/etc/profile.d/java.sh<<EOF
JAVA_HOME=$path$jdkPath
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
EOF
echo "写入成功!"
chown root.root /etc/profile.d/java.sh
echo "查看jdk版本"
source /etc/profile
java -version
fi
else
echo "存在java目录..."
fi

5.使用须知

使用脚本的时候一定要将脚本和安装包放到同一个目录,否则会出现因找不到文件而无法正常安装的情况。尽量避免在同一个目录存在类似的安装包,这样也有可能会出现找不到包的情况。两个脚本基本一样tar的脚本是在rpm脚本上调整的到的,tar安装记得一定要source一下profile文件不然安装后文件没有刷新,一直提示没有java这个命令

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用以下的 shell 脚本来实现: ```sh #!/bin/bash # Set the JDK version and installation directory JDK_VERSION="jdk-11.0.12" INSTALL_DIR="/usr/local" # Download the JDK tarball wget -P /tmp "https://download.java.net/java/GA/jdk11/${JDK_VERSION}_linux-x64_bin.tar.gz" # Extract the tarball to the installation directory sudo mkdir -p ${INSTALL_DIR}/${JDK_VERSION} sudo tar zxvf /tmp/${JDK_VERSION}_linux-x64_bin.tar.gz -C ${INSTALL_DIR}/${JDK_VERSION} --strip-components=1 # Configure the system to use the new JDK sudo update-alternatives --install /usr/bin/java java ${INSTALL_DIR}/${JDK_VERSION}/bin/java 1 sudo update-alternatives --install /usr/bin/javac javac ${INSTALL_DIR}/${JDK_VERSION}/bin/javac 1 sudo update-alternatives --set java ${INSTALL_DIR}/${JDK_VERSION}/bin/java sudo update-alternatives --set javac ${INSTALL_DIR}/${JDK_VERSION}/bin/javac ``` 读取这个脚本,你可以看到它的步骤: 1. 设置了 JDK 版本安装目录的变量 2. 下载 JDK 的压缩包 3. 解压 JDK 到指定的安装目录 4. 配置系统以使用新的 JDK 你可以直接复制这个脚本并将其保存到一个你喜欢的目录下,例如 `/home/myuser/scripts/install-jdk.sh`。接下来,只需要在终端中运行以下命令,你就可以开始使用脚本安装 JDK 了: ```sh chmod +x /home/myuser/scripts/install-jdk.sh sudo /home/myuser/scripts/install-jdk.sh ``` 你可以根据需要替换安装目录和 JDK 版本。需要注意的是,运行此脚本需要管理员权限,所以需要通过 `sudo` 命令来运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值