脚本模式生产环境下JDK环境变量的配置
上传脚本和jdk压缩包
vim shell02_2026_02_09.sh
#!/bin/bash
# 开始使用前,请上传jdk文件和脚本为同一个目录
# 查找系统的jdk并删除
find / -name "jdk" | xargs rm -rf
# 创建安装jdk的目录
mkdir -p /opt/jdk
# 对jdk软件包进行解压,jdk为jdk-8u241-linux-x64.tar.gz
tar -zxvf jdk-8u241-linux-x64.tar.gz -C /opt/jdk
# 配置jdk的环境变量
echo "export JAVA_HOME=/opt/jdk/jdk1.8.0_241" >> /etc/profile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile
echo "export CLASSPATH=.:/opt/jdk/jdk1.8.0_241/lib" >> /etc/profile
echo "export JRE_HOME=/opt/jdk/jdk1.8.0_241/jre" >> /etc/profile
source /etc/profile
让以上配置立即生效
source jdk.sh
验证JDK是否配置成功
java -version
注意:如果Shell脚本中包含source命令,则脚本的执行必须采用source 脚本名称.sh
原因
1.shell类型不匹配
# 脚本可能使用不同的shell解释器
# 例如:脚本用 #!/bin/sh 但 source 是bash特有的
2. source 是 bash/sh 内置命令
# source 不是普通命令,而是shell内置函数
type source # 显示:source is a shell builtin
# 在某些情况下(如cron、systemd服务)可能无法正常工作
解决方案:
方案1:使用点号 . 代替 source
#!/bin/bash
# 使用点号,更通用的方式
. /etc/profile