当前位置: 首页 > article >正文

windows服务器更新jar包脚本

【需求】Java每次发布新的版本都需要先kill掉原来的服务,然后再启动新的包  有了这个脚本只需要把包替换掉,服务会自动kill  

以6001 为例  完整的脚本如下

@echo off
REM 检查端口 6001 是否被占用
netstat -ano | findstr :6001 > nul
IF %ERRORLEVEL% EQU 0 (
    REM 如果端口被占用,查找并杀死进程
    FOR /F "tokens=5" %%i in ('netstat -ano ^| findstr :6001') do (
        echo Killing process with PID %%i
        taskkill /PID %%i /F
    )
)

REM 启动新的 Java 服务
java -jar admin.jar --spring.profiles.active=product

脚本解析:

  1. netstat -ano | findstr :6001:检查端口 6001 是否被占用。如果端口被占用,则返回进程信息。
  2. IF %ERRORLEVEL% EQU 0:如果端口被占用,继续执行杀死进程的命令。
  3. FOR /F "tokens=5" %%i in ('netstat -ano ^| findstr :6001') do:查找并获取占用端口的进程 ID(PID)。
  4. taskkill /PID %%i /F:根据 PID 强制杀死进程。
  5. 最后,启动新的 Java 服务:java -jar admin.jar --spring.profiles.active=product

http://www.kler.cn/a/567728.html

相关文章:

  • 为什么gpt-sovits微调训练轮数最大只能设置为3
  • 进程控制(创建、终止、等待、替换)
  • 【vscode-解决方案】vscode 无法登录远程服务器的两种解决办法
  • 矩阵基本概念
  • 合并两个有序链表:递归与迭代的实现分析
  • 【NLP 30、大模型中的 ”Token“】
  • deepseek+mermaid【自动生成流程图】
  • 汽车免拆诊断案例 | 保时捷车发动机偶发熄火故障 2 例
  • Java中的大数据流处理框架与技术比较
  • 汽车离合器片检具设计
  • java中代理模式 之 jdk动态代理模式
  • 2. 在后端代码中加入日志记录模块
  • 接口测试工具:postman详解
  • 释放你的IDE潜能:Code::Blocks 插件创意开发深度指南
  • 新装的conda 以及pycharm未能正确初始化,或conda环境变量配置错误问题解决!!!
  • esp32串口通信
  • StarRocks 在爱奇艺大数据场景的实践
  • 清华大学Deepseek第六版AIGC发展研究3.0(共186页,附PDF下载)
  • 智能合约安全 | 合约无效化攻击
  • brew search报错,xcrun:error:invalid active developer path CommandLineTools