#!/bin/bash
echo 'begin to install'
# 0. mkdir
mkdir -p /alidata1/server
# 1. java
ETC_RC_LOCAL_FILE=/etc/rc.d/rc.local
echo '----------java--------------'
JAVA_JDK_PATH=/alidata1/server/jdk1.8.0_221
tar -xf jdk-8u221-linux-x64.tar -C /alidata1/server
echo -e "\n\n" >> $ETC_RC_LOCAL_FILE
echo -e "#java jdk - by haifeng" >> $ETC_RC_LOCAL_FILE
echo -e "export JAVA_HOME=${JAVA_JDK_PATH}" >> $ETC_RC_LOCAL_FILE
echo -e 'export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> $ETC_RC_LOCAL_FILE
echo -e 'export PATH=$PATH:$JAVA_HOME/bin\n\n' >> $ETC_RC_LOCAL_FILE
source $ETC_RC_LOCAL_FILE
遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
使用脚本自动设置Java环境,减少出错率,很实用。
建议在设置
JAVA_HOME
后,使用source /etc/rc.d/rc.local
更优雅。避免脚本中的重复执行。在大多数Linux发行版中,
/etc/rc.local
可能没有执行权限。需要用chmod +x /etc/rc.local
命令来给予权限。不建议直接从
/etc/rc.d/rc.local
加载环境变量。可以在~/.bashrc
中配置,便于管理并减小对全局系统的影响。脚本中提到的JDK版本较旧,建议使用较新版本,比如OpenJDK 11或17,更多内容可参考OpenJDK。
对于环境变量的实际生效,可以通过
echo $JAVA_HOME
来验证,在排查问题时非常有帮助。建议加入对JDK安装包不存在情况下的异常处理,增强脚本的鲁棒性。
在Debian系的系统上,
rc.local
可能不会执行。需要通过systemd
启用,比如sudo systemctl enable rc-local.service
。月光: @家乐 是的,的确是这样。
不要忘记最后通过
source
命令重新加载环境变量,否则设置可能不会立即生效。在服务器上使用本地路径存放JDK不太合理,通常建议放在系统目录,如
/usr/lib/jvm
,这样管理和维护更加规范化。