SpringBoot:Windows平台下JAR包的启动,停止和日志分割脚本

简介: SpringBoot:Windows平台下JAR包的启动,停止和日志分割脚本

目录

JAR包的启动脚本

多个JAR包同时启动

启动效果

单个JAR包启动,并输出日志

单个JAR包启动,并输出按天分割的日志

启动效果

JAR包的停止脚本

停止一个端口

停止多个端口

执行效果

停止多个连续端口

bat批处理脚本静默运行



JAR包的启动脚本

多个JAR包同时启动

@echo off
echo.
echo WebVR START...
echo.
:: 进入目录文件夹
d:
cd D:\JT\java\workspace\webvr-end\deploy
:: 执行多个javaw命令,但是无法输出日志
echo  webvr-auth START...
start javaw -jar -Dfile.encoding=utf-8 -Xms800m -Xmx1024m  webvr-auth-1.0.5.jar
echo  webvr-gateway START...
start javaw -jar -Dfile.encoding=utf-8 -Xms800m -Xmx1024m  webvr-gateway-1.0.5.jar
echo  webvr-system START...
start javaw -jar -Dfile.encoding=utf-8 -Xms800m -Xmx1024m  webvr-system-1.0.5.jar
echo  webvr-vr START...
start javaw -jar -Dfile.encoding=utf-8 -Xms800m -Xmx1024m  webvr-vr-1.0.5.jar
pause

启动效果

 

存在问题:

无法输出日志


单个JAR包启动,并输出日志

依赖cronolog组件

cronolog组件下载

链接:https://pan.baidu.com/s/1vYprB1gfXed9gqQ0o8QSSQ 

提取码:1111

@echo off
echo.
echo WebVR START...[1/4]
echo.
:: 应用存放路径
set deploy_path = D:\JT\java\workspace\webvr-end\deploy
:: 进入目录文件夹
d:
echo cd deploy_path %deploy_path%
cd %deploy_path%
:: 执行命令
echo  webvr-auth START...
javaw -D'file.encoding=utf-8' -jar webvr-auth-1.0.5.jar 2>&1>webvr-auth.log
pause

存在问题:

日志文件越来越大,问题定位不方便


单个JAR包启动,并输出按天分割的日志

@echo off
echo.
echo WebVR START...[4/4]
echo.
:: 应用存放路径
set deploy_path = D:\JT\java\workspace\webvr-end\deploy
:: 进入目录文件夹
d:
echo cd deploy_path %deploy_path%
cd %deploy_path%
:: 执行命令
echo  webvr-vr START...
:: javaw -D'file.encoding=utf-8' -jar webvr-vr-1.0.5.jar 2>&1>webvr-vr.log
javaw -D'file.encoding=utf-8' -jar webvr-vr-1.0.5.jar | D:\JT\java\workspace\webvr-end\deploy\cronolog\cronolog.exe D:\JT\java\workspace\webvr-end\deploy\log\webvr-vr-%%Y%%m%%d.log
pause

启动效果

还待解决的问题:

过去多少天(如3个月)的日志,并没有多大意义,需要清理


JAR包的停止脚本

原理:

1. 查找一下XXX端口的进程: netstat -a -n -o | findstr :9200

2. 结束进程: taskkill /pid 2044 -t -f


停止一个端口

@echo off
set port=20812
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
    echo kill the process %%m who use the port %port%
    taskkill /pid %%m
)

停止多个端口

port设置成变量,并用空白字符分割

@echo off
set port=7910 9200 9201 9203
for /f "tokens=1-5" %%a in ('netstat -ano^|findstr ":%port%"') do (
    echo PID:%%e is running,kill the process [%%e] who use the port [%%b]
    taskkill /F /pid %%e
)
pause


执行效果

其中报错信息"错误,没有找到进程XXX",并不影响,因为对应的进程已经再上面被杀掉


停止多个连续端口

for /l %%n in (20801,1,2085),表示操作20801,20802,20803,20804,20805的端口

@echo off
for /l %%n in (20801,1,2085) do (
    @echo find the process which use port [%%n]
    for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%%n"') do (
        tasklist /FI "PID eq %%m"|find /i "PID" && (
        echo PID:%%m 运行中,kill the process [%%m] who use the port [%%n]
        taskkill /F /pid %%m
        ) || echo PID:%%m 未运行 
    )
)

bat批处理脚本静默运行

1.打开文本编辑器

DIM objShell

set objShell=createobject("wscript.shell")

result=objShell.Run("bat路径",0,true)

2.将文件的后缀名改为.vbs 双击即可运行

DIM objShell
set objShell=createobject("wscript.shell")
result=objShell.Run("D:\JT\java\workspace\webvr-end\deploy\StartWebVR.bat",0,true)


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
2201 0
|
存储 运维 监控
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
SelectDB 实现日志高效存储与实时分析,完成任务可领取积分、餐具套装/水杯/帆布包!
|
安全 Java 持续交付
如何实现上传jar直接部署成功,这篇文章直接带你上手springboot实现jar包热更新!
本文详细讲解了在Spring Boot应用中实现Jar包热更新的实践方法。通过自定义类加载器(`HotClassLoader`),动态加载和卸载指定目录下的Jar包,结合Spring Bean动态注册机制,使新加载的类能够被Spring容器管理。同时,提供了文件上传接口,方便用户手动触发Jar包更新。文章还强调了安全性、依赖管理和线程安全等注意事项,并给出了测试步骤和总结,帮助开发者高效实现热更新功能,减少服务中断和提升开发效率。
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
552 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
941 64
SpringBoot项目打war包流程
|
Java Maven 开发者
编写SpringBoot的自定义starter包
通过本文的介绍,我们详细讲解了如何创建一个Spring Boot自定义Starter包,包括自动配置类、配置属性类、`spring.factories`文件的创建和配置。通过自定义Starter,可以有效地复用公共配置和组件,提高开发效率。希望本文能帮助您更好地理解和应用Spring Boot自定义Starter,在实际项目中灵活使用这一强大的功能。
1241 17
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
3349 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
Java 应用服务中间件 Maven
SpringBoot项目打包成war包
通过上述步骤,我们成功地将一个Spring Boot应用打包成WAR文件,并部署到外部的Tomcat服务器中。这种方式适用于需要与传统Servlet容器集成的场景。
1882 8
|
Java 数据库连接 mybatis
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
该文档详细介绍了如何在Springboot Web项目中整合Mybatis,包括添加依赖、使用`@MapperScan`注解配置包扫描路径等步骤。若未使用`@MapperScan`,系统会自动扫描加了`@Mapper`注解的接口;若使用了`@MapperScan`,则按指定路径扫描。文档还深入分析了相关源码,解释了不同情况下的扫描逻辑与优先级,帮助理解Mybatis在Springboot项目中的自动配置机制。
1508 1
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)