您的位置:首页 > 运维架构 > Tomcat

如何在脚本配置环境变量后立即使用环境变量

2017-08-16 14:22 281 查看
如果你点进了这篇博文,只能证明你对bat脚本还不够熟悉,运用的太少

因为解决这个问题太简单了,先不要急着跟着做

可是我也在这个坑里徘徊了好几天

先说个例子,我是在写一键部署tomcat+jre(或者jdk)+mysql的小程序遇到的这个问题

因为tomcat需要java环境,所以我先安装jdk硬配置环境变量(推荐免安装解压缩版,解压+配置环境变量即可)

a.bat 是我配置java环境的脚本,在这里,我选择配置jre,毕竟jdk体积大jre好几倍【此脚本只为部署,不考虑开发】

echo on
echo 这是a.bat
echo ********遇到这个问题的你不需要解释一下命令的意义了吧,如果不懂setx的使用,就百度一下:setx命令的使用*********
echo 配置jre_home
setx JRE_HOME "C:\Java\jre1.8.0_144" -m
echo 配置classpath
setx CLASSPATH ".;%%JRE_HOME%%\lib" -m
echo 将jre_home配置到系统变量里,这样你才能在任何目录下使用java命令
setx Path "%%JRE_HOME%%\bin;%Path%"
echo 暂停看过程是否成功
pause

下面是安装tomcat服务,我还是选择解压缩版,没得选,很方便

解压后先检查你的tomcat安装目录bin下有没有service.bat文件,没有就找一个,或者选择我的(我采用的tomcat7的service.bat,虽然我用的是tomcat8,只需对service.bat稍作修改即可,将里面tomcat7的内容都改为tomcat8)

b.bat是我安装tomcat的脚本配置

echo on
echo 这是b.bat
echo *******************
echo 安装tomcat服务,路径改成你的tomcat路径
call "c:\tomcat\bin\service.bat" install Tomcat8
echo 启动tomcat服务,安装不成功则启动失败
sc start Tomcat8
echo pause相当于暂停,按任意键继续,别急着按任意键,先看看执行记录,是否成功。不要问我任意键在哪
pause




现在模拟一个一键执行程序x.bat(万物皆脚本)

echo 模拟安装包程序
echo 执行a.bat
start a.bat
echo 执行b.bat
start b.bat
echo 执行结束
pause

正常情况不论成功失败都会出现按任意键请继续三次,如果哪一步闪退,看下路径是否正确。

以上脚本执行后你会发现,在执行service.bat这不始终找不到jre_home   or   jdk_home,明明设置了环境变量,却还是调用不到,快捷键win+R

输入cmd

输入java -version

明明可以查到,Tomcat的service.bat内引用的%JRE_HOME%却找不到。

原因,系统机制问题(具体什么机制,等待大神回复),只有重开一个cmd窗口才会生效。

But,机器是死逻辑,我们是活的,一下附上解决方法及service.bat附件。

*********************【WARNING】**********************

修改b.bat文件

echo on
echo 这是b.bat
echo *******************
echo 安装tomcat前,先设置一个局部变量jre_home
set JRE_HOME=C:\Java\jre1.8.0_144
echo 安装tomcat服务,路径改成你的tomcat路径
call "c:\tomcat\bin\service.bat" install Tomcat8
echo 启动tomcat服务,安装不成功则启动失败
sc start Tomcat8
echo pause相当于暂停,按任意键继续,别急着按任意键,先看看执行记录,是否成功。不要问我任意键在哪
pause

没错,就是这样- -你只需要添加一个临时变量,毕竟只是临时用

这篇博其实不想写的,因为一句话就够了,只是自己当初找的时候无头苍蝇一样乱搜关键词

想到我总不是最笨的,还有人跟我一样,所以决定写出来

时间就是成本,希望能够帮到人。

ps:这里只是一键部署mysql+tomcat+jre(jdk)环境的一部分,有时间慢慢补充。如有紧急需要的

我V信:ffusion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息