window环境上使用bat脚本重启Tomcat服务。(非黑窗口启动),管理员身份启动bat脚本

在windows生可以使用脚本利用Tomcat的shutdown.bat和startup.bat脚本来重启Tomcat。但是有时候会一不小心关闭startup.bat窗口而引起的麻烦,说实话windows环境上部署服务器运行效率有点低。
先附上使用Tomcat自带脚本启动的bat脚本:

@echo off  
::cd /d "D:\java\Tomcat9\bin" 
cd /d "D:\java\Tomcat9\bin"  
title Tomcat重新启动脚本  
call "shutdown.bat" 
ping -n 6 127.1 >nul  
wmic process where name="java.exe" get processid,commandline |findstr /i "tomcat" >#        
setlocal enabledelayedexpansion  
for /f "delims=*" %%i in (#) do (        
   set var=%%i  
   set var=!var:start  =#!        
   for /f "tokens=2 delims=#" %%a in ("!var!") do (  
     set tomcatpid=%%a  
    )  
)  
del # >nul        
if defined tomcatpid taskkill /pid !tomcatpid!  
ping -n 3 127.1 >nul  
call "startup.bat" 
exit

解决方法:

将tomcat注册为windows上服务,这样就可以通过cmd窗口启动tomcat服务器,当关闭窗口时服务也会一直运行

前置条件:
Tomcat在windows上能正常运行。然后才可以进行以下步骤:

管理员运行cmd窗口。然后进入到Tomcat安装目录下的bin目录中,输入net start tomcat9或net start tomcat就可以运行tomcat服务了,窗口这回关闭了,tomcat服务器一会一直运行
停止tomcat服务输入net stop tomcat9命令

接下来就是写重启Tomcat的bat脚本了:

@echo off  

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (goto UACPrompt) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
::cd /d "D:\java\Tomcat9\bin" 
cd /d "D:\java\Tomcat9\bin" 
 
title Tomcat重新启动脚本 
net stop tomcat9
ping -n 6 127.1 >nul  
wmic process where name="java.exe" get processid,commandline |findstr /i "tomcat" >#        
setlocal enabledelayedexpansion  
for /f "delims=*" %%i in (#) do (        
   set var=%%i  
   set var=!var:start  =#!        
   for /f "tokens=2 delims=#" %%a in ("!var!") do (  
     set tomcatpid=%%a  
    )  
)  
del # >nul        
if defined tomcatpid taskkill /pid !tomcatpid!  
ping -n 3 127.1 >nul
net start tomcat9
exit

到这里就大功告成了。

--------------------------------------补充-------------------------------------

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (goto UACPrompt) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
::cd /d "D:\java\Tomcat9\bin" 
cd /d "D:\java\Tomcat9\bin" 

脚本中的这一段代码是让脚本命令以管理员身份运行。因为重启命令必须是管理员身份才可以。要不然会拒绝访问的。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要实现在Windows开机时启动bat脚本,可以按照以下步骤操作: 1. 首先,将要启动bat脚本复制到Windows启动文件夹中。可以通过以下路径访问该文件夹:C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup。将bat文件粘贴到该文件夹中。 2. 接下来,需要编辑bat文件,确保它在后台启动并且不显示cmd终端窗口。可以在bat文件的开头添加以下代码实现这一点: ``` if "%1"=="h" goto begin start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin ``` 这段代码会检查是否传入了"h"参数,如果传入了,则后台启动bat脚本并关闭终端窗口。 3. 最后,重新启动计算机,bat脚本将会在Windows开机时自动执行。 请注意,以上步骤适用于将bat脚本添加到当前用户的启动文件夹中。如果需要将bat脚本添加到所有用户的启动文件夹中,可以将bat文件复制到以下路径:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup。 参考资料: <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [bat脚本启动Java服务](https://blog.csdn.net/weixin_43763430/article/details/127946943)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Windows创建bat运行脚本、设置开机自启](https://blog.csdn.net/ppp1512/article/details/126289825)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

散装程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值