下面的批处理文件能够自动完成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)&&exitset myjdkpath=C:\Java\1.8.0_60set myjrepath=C:\Java\1.8.0_60\jreset mytomcatpath=C:\apache-tomcat-8.0.26echo **********************************************echo. echo 将要安装jdk echo. echo 安装请按任意键,退出直接关闭窗口 echo. echo **********************************************pauseecho. echo 正在安装jdk,请不要执行其他操作 echo. echo 请稍等,这个时间大约需要二、三分钟 echo.start /WAIT jdk-8u60-windows-x64.exe /qn INSTALLDIR=C:\Java\1.8.0_60echo jdk安装完毕echo **********************************************echo. echo 将要安装Tomcat软件 echo. echo 安装请按任意键,退出直接关闭窗口 echo. echo **********************************************pauseecho. echo 正在安装Tomcat 请不要执行其他操作 echo. echo 请稍等,这个时间大约需要五、六分钟 echo.xcopy /e /i apache-tomcat-8.0.26 c:\apache-tomcat-8.0.26 >nulecho Tomcat安装完毕echo **********************************************echo. echo 将要安装配置环境变量echo. echo 继续请按任意键,退出直接关闭窗口 echo. echo **********************************************pausesetx 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%">nulecho 环境变量配置成功。 echo 退出后请手动运行setup-2.bat,请按任意键退出 pause
第二个文件setup-2.bat
@echo offecho **********************************************echo. echo 设置并启动TomCat服务 echo. echo 启动请按任意键,退出直接关闭窗口 echo. echo **********************************************pausecall C:\apache-tomcat-8.0.26\bin\service.bat install>nul sc config Tomcat8 start= auto>nul net start Tomcat8 echo 部署工作已经成功完成,按任意键退出 pause
下面说一下为什么要用两个文件还要手动运行,而不是放在一个bat中,这也是我遇到的一个问题。
答案就是 bat写完环境变量后重启才能生效!
第二个文件安装tomcat服务的时候需要环境变量,之前放在一个文件里面的时候总是报环境变量CATALINA_HOME错误,但是我用命令行单独安装服务的时候是能够成功安装的,也就是说显示的环境变量并没有错!折腾了很久,后来突然想到了这个可能性。(太菜,请嘲笑我) 结果一试果然如此。 我也想过写第三个bat来调用这两个bat,但是这样还是老问题,看来即使第三个bat调用这两个bat,他们也是在一个线程里面的。
所以目前就采用了手动分别一次运行这两个文件的方法。如果之后有改进方案了再来补充。
本文参考文章,感谢博主慢慢来:
https://www.cnblogs.com/mamuluke/p/4838755.html
本文分享自微信公众号 - 浩Coding(gh_c4a2e63d2ca7)
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2018-09-07
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句