如果你点进了这篇博文,只能证明你对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的脚本配置
<strong>echo on</strong>
<strong>echo 这是b.bat</strong>
<strong>echo *******************</strong>
<strong>echo 安装tomcat服务,路径改成你的tomcat路径</strong>
<strong>call "c:\tomcat\bin\service.bat" install Tomcat8</strong>
<strong>echo 启动tomcat服务,安装不成功则启动失败</strong>
<strong>sc start Tomcat8</strong>
<strong>echo pause相当于暂停,按任意键继续,别急着按任意键,先看看执行记录,是否成功。不要问我任意键在哪</strong>
<strong>pause</strong>
现在模拟一个一键执行程序x.bat(万物皆脚本)
echo 模拟安装包程序
<strong>echo 执行a.bat</strong>
<strong>start a.bat</strong>
<strong>echo 执行b.bat</strong>
start b.bat
<strong>echo 执行结束</strong>
<strong>pause</strong>
正常情况不论成功失败都会出现按任意键请继续三次,如果哪一步闪退,看下路径是否正确。
以上脚本执行后你会发现,在执行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)环境的一部分,有时间慢慢补充。