汇总篇:https://blog.csdn.net/weixin_44647371/article/details/100807631
一、隐藏tomcat启动黑窗
场景:
通过tomcat/bin/startup.bat启动时会弹出tomcat控制台黑窗,有时很碍眼,且容易误关闭导致服务器终止的情况
期望隐藏掉控制台黑窗,且 tomcat仍在后台运行
解决办法01
编辑下的tomcat/bin/setclasspath.bat文件,将末尾的
set _RUNJAVA="%JRE_HOME%\bin\java.exe"
改为
set _RUNJAVA="%JRE_HOME%\bin\javaw"
然后再重启tomcat即可生效
解决办法02(jdk运行jar包)
将原本运行jar包的命令由
java -jar XXX.jar
改为
javaw -jar xxx.jar
注:如果最前面start 会使jar包执行后自动关闭黑窗(bat转exe里建议不加)
如需将启动控制台信息导出,可这样配置: javaw -jar XXX.jar > LM日志.log
rem (bat一键启动版)
@echo off
set port=端口号
for /f "tokens=5 " %%i in ('netstat -ano^|findstr ":%port%"') do (
taskKill /PID %%i -f
)
echo 【LM】1/2 已解除端口%port%占用
echo 【LM】2/2 正在运行jar包...
start javaw -jar XXX.jar
rem (exe一键启动版对应的bat——原理:端口如果被占用,先停止端口再执行jar包)
@echo off
set port=端口号
for /f "tokens=5 " %%i in ('netstat -ano^|findstr ":%port%"') do (
taskKill /PID %%i -f
)
echo 【LM】1/2 已解除端口%port%占用
echo 【LM】2/2 正在运行jar包...
javaw -jar XXX.jar
rem (exe一键启动版对应的bat——原理:如果端口被占用则直接打开页面,不执行jar包)
@echo off
set port=9999
for /f "tokens=5 " %%i in ('netstat -ano^|findstr ":%port%"') do (
rem 端口被占用时,pid大于1,端口闲置时,pid没有或为0
if %%i GTR 0 (
echo 端口被占用,正在打开页面...
start chrome "http://localhost:9999"
rem 下为跳出循环,直接退出黑窗
goto MYEND
)
)
echo 端口闲置中,正在启动服务...
javaw -jar version_tool-0.0.1-SNAPSHOT.jar
:MYEND
二、windows解决端口占用
01.常规方法
#1.查看端口对应的进程pid(最后一列为pid号)
netstat -ano | findstr 端口号
或者
netstat -ano | grep 端口号
#2. 终止对应pid进程的任务
taskkill -PID 进程号 -F
02.一行命令的方法
FOR /F "tokens=5 delims= " %P IN ('netstat -ano ^| grep 端口号') DO taskKill /PID %P -F
或者
for /f "tokens=5 delims= " %P IN ('netstat -ano ^| findstr 端口号') DO taskKill /PID %P -f
03.bat脚本方式
set port=端口号
for /f "tokens=5 " %%i in ('netstat -ano^|findstr ":%port%"') do (
taskKill /PID %%i -f
)