jvm 内存只增不减 程序假死 进程挂起 win10下定时运行和开机自启动jar包

最近项目中有个数据同步的项目运行1天左右就假死掉了,只剩个进程壳,实际代码不执行,看了内存消耗,是因为内存只增不掉所以挂掉了;懒得看代码,就想了个笨办法先解决下,之后还是要撸一遍代码把问题彻底解决掉的。

笨办法:win系统里创建定时任务,每天定时启动,步骤如下

需求说明:
java程序打包成jar包
jar包开机自启动
jar包每隔一段时间重启
环境说明
运行环境:win 10
编程环境:IDEA 2019
项目:MAVEN项目

IDEA中打包maven项目
右侧maven–点击package–打包完成

在这里插入图片描述
打包完成之后生成jar包,在项目的target文件夹下

在这里插入图片描述

定位到该jar包所在目录下,复制或者剪切该jar包
在F盘新建一个文件夹,命名为"startBat",将jar包放在该文件夹中

在这里插入图片描述

编写Bat脚本
在jar包的同目录下新建start.bat,然后编辑,输入以下内容:

@echo off
set port=8085
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
    echo kill the process %%m who use the port 
    taskkill /pid %%m -t -f
    goto start
)
:start
 
START "thymedemo" javaw -jar thymedemo-0.0.1-SNAPSHOT.jar



我这里程序运行的端口是8085,所以set port=8085
循环地去读取端口,如果找到端口8085,查询对应的PID是否存在,如果存在,则杀死(taskkill /pid)
杀死当前进程后,再重新启动(start) jar包 即可。

这样就完成了重启jar包及相关服务的工作了

创建定时任务
1.找到“我的电脑”,右键——“管理”,找到“系统工具”——“任务计划程序”。
开始“创建基础任务”,如图。

在这里插入图片描述

根据向导填相关信息即可。需要注意的点在于触发器设置。其他根据需要进行设置。

例如设置程序在每天每隔一小时启动一次Bat脚本
选择“每天”,每日,设定开始时间和时间间隔。

在这里插入图片描述

在这里插入图片描述

下一步,设置操作,选择“启动程序”

在这里插入图片描述
下一步,设定启动程序,“浏览”,添加刚才的Bat脚本即可

在这里插入图片描述
注意这里的“起始于”应该填写Bat脚本的上一级目录。

在这里插入图片描述
完成!
接着在“程序任务库”中就可以找到我们刚新建的定时任务了,如图。

在这里插入图片描述
双击,对该任务进行编辑,定位到“常规”,如图进行选择设置。

在这里插入图片描述
接着定位到“触发器”,点击编辑,如图。

在这里插入图片描述
因为要实现每隔一小时重复运行该脚本的目的,所以我们勾选“重复任务间隔”,并设置间隔时间为1小时。

当然这里的时间可以自由直接编辑,任意填几个小时。

在这里插入图片描述

由于每次运行完最好是关闭再运行java程序,所以我们还需勾选“重复持续时间结束时停止所有运行的任务”

点击“确定”,完成设置。

检验定时任务的运行
设置完之后,程序没有立刻运行,而是在下一个设定好的时间节点开始运行,这里可以等待定时器执行定时任务。

当然最好的话,可以在原来的java程序中编写生成日志文件的代码,每当程序运行,就生成一个日志文件,用以记录程序运行的情况。

——————————分割线——————————————————————
jar包开机重启
在同目录下新建文件start.vbs,写入以下代码

createobject("wscript.shell").run"F:\startBat\start.bat",0



即用shell脚本运行F盘startBat文件夹下的start.bat脚本(就是上述步骤新建好的脚本文件)
命令的最后一个“0”代表隐藏窗口运行

创建开机启动的快捷方式
右键创建start.vbs的快捷方式,并将该快捷方式复制到目录
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

重启系统,就会发现jar包自动重启并运行。

写在最后
最终目录结构如图所示


————————————————
版权声明:本文为CSDN博主「爱学习的诸葛铁锤」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41873311/article/details/110134810

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值