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

如果你点进了这篇博文,只能证明你对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


你可能感兴趣的:(打包部署)