bat批处理完成jdk tomcat的安装

时间:2022-01-12 15:16:09

在完成一个web应用项目后,领导要求做一个配置用的批处理文件,能够自动完成jdk的安装,tomcat的安装,web应用的部署,环境变量的注册,tomcat服务的安装和自动启动

 

参考了网上很多的类似的批处理代码后,整合成了如下的批处理

 

方案如下,先安装jdk,然后将已经部署好的web应用连同解压好的tomcat文件夹(用的不是安装版,这样比较简单)拷贝到目的目录,然后写环境变量,然后注册服务。

第一个文件setup-1.bat

@echo off


%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

set myjdkpath=C:\Java\1.8.0_60
set myjrepath=C:\Java\1.8.0_60\jre
set mytomcatpath=C:\apache-tomcat-8.0.26

echo **********************************************
echo.
echo                   将要安装jdk
echo.
echo       安装请按任意键,退出直接关闭窗口
echo.
echo **********************************************

pause

echo.
echo 正在安装jdk,请不要执行其他操作
echo.
echo 请稍等,这个时间大约需要二、三分钟
echo.
start /WAIT jdk-8u60-windows-x64.exe /qn INSTALLDIR=C:\Java\1.8.0_60
echo jdk安装完毕

echo **********************************************
echo.
echo             将要安装Tomcat软件 
echo.
echo       安装请按任意键,退出直接关闭窗口
echo.
echo **********************************************

pause

echo.
echo 正在安装Tomcat 请不要执行其他操作
echo.
echo 请稍等,这个时间大约需要五、六分钟
echo.
xcopy /e /i apache-tomcat-8.0.26 c:\apache-tomcat-8.0.26 >nul
echo Tomcat安装完毕 


echo **********************************************
echo.
echo             将要安装配置环境变量
echo.
echo       继续请按任意键,退出直接关闭窗口
echo.
echo **********************************************
pause

setx JRE_HOME %myjrepath%>nul
setx JAVA_HOME %myjdkpath%>nul
setx CLASSPATH .;%myjdkpath%\lib\tools.jar;%myjdkpath%\lib\dt.jar;%myjdkpath%\jre\lib\rt.jar>nul
setx PATH %myjdkpath%\bin>nul
setx CATALINA_HOME "%mytomcatpath%">nul
echo 环境变量配置成功。
echo 退出后请手动运行setup-2.bat,请按任意键退出
pause

第二个文件setup-2.bat

@echo off

echo **********************************************
echo.
echo            设置并启动TomCat服务 
echo.
echo       启动请按任意键,退出直接关闭窗口
echo.
echo **********************************************
pause

call C:\apache-tomcat-8.0.26\bin\service.bat install>nul
sc config Tomcat8 start= auto>nul
net start Tomcat8 
echo 部署工作已经成功完成,按任意键退出
pause

下面说一下为什么要用两个文件还要手动运行,而不是放在一个bat中,这也是我遇到的一个问题。

 

答案就是  bat写完环境变量后重启才能生效!bat写完环境变量后重启才能生效!bat写完环境变量后重启才能生效!(重要的事情说三遍)

第二个文件安装tomcat服务的时候需要环境变量,之前放在一个文件里面的时候总是报环境变量CATALINA_HOME错误,但是我用命令行单独安装服务的时候是能够成功安装的,也就是说显示的环境变量并没有错!折腾了很久,后来突然想到了这个可能性。(太菜,请嘲笑我)  结果一试果然如此。  我也想过写第三个bat来调用这两个bat,但是这样还是老问题,看来即使第三个bat调用这两个bat,他们也是在一个线程里面的。

所以目前就采用了手动分别一次运行这两个文件的方法。如果之后有改进方案了再来补充