在windows下使用tomcat有时候很糟心,因为使用tomcat下自带的批处理脚本很慢,如果不上热部署,那么改一点重启一点,非常糟心。当然,还是建议上热部署。
下面是之前开发的过程中找到的一个极好的办法。适用情况tomcat8,端口8080(端口在脚本可以改)。当然,建议安装tomcat的时候选择exe的安装,一方面,够简单,而且直接会把环境变量添加到windows下,免去了配置的麻烦;另一方面,用我下面的脚本会非常方便,直接杀死tomcat进程,启动关闭再也不用等了。哈哈哈哈哈哈....
- 关闭tomcat进程
@echo off
REM ________________________________获取管理员权限________________________________
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM 判断是否具有管理员权限
if '%errorlevel%' NEQ '0' (
REM 若没有取管理员权限
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"
REM __________________________________关闭tomcat8080端口______________________________
REM 关闭tomcat的8080端口
setlocal enabledelayedexpansion
for /f "tokens=5 delims= " %%a in ('netstat -aon ^| findstr "8080"') do (
set a=%%a
)
taskkill /pid !a! /f && goto 1 || goto 2
:1
echo "tomcat 关闭成功"
pause>nul
exit
:2
echo "tomcat 关闭失败,请使用管理员权限运行"
pause>nul
exit
- 启动tomcat进程
@echo off
REM ________________________________________________________________
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM 判断是否具有管理员权限
if '%errorlevel%' NEQ '0' (
REM 若没有取管理员权限
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"
REM ________________________________________________________________
net start tomcat8
pause & exit
- 附上windows相关dos命令
查询所有的端口被占用的情况
netstat -ano
查询端口号所对应的PID,以8080为例
netstat -ano | findstr "8080"
根据查询的PID找到对应的进程
tasklist|findstr "5264"
删除对应的PID(有的需要管理员权限)
taskkill /f /pid "进程号"
结束某个进程
taskkill /f /t /im tor.exe