win10 定时任务实战--开机启动 Java 应用

引言

在Windows 10系统中,可以通过结合任务计划程序(Task Scheduler)和批处理脚本(.bat)或PowerShell脚本来定期运行Java程序。以下是一个基本的步骤说明,展示如何设置这一过程。

第一步:准备Java程序

确保 Java 程序可以独立运行,不需要复杂的命令行参数(或者你已经知道如何传递这些参数)。为了简单起见,假设你的Java程序是一个名为MyApp.jar的可执行JAR文件。

第二步:创建批处理脚本(.bat)

  1. 打开记事本或任何文本编辑器, 输入以下命令来运行 Java 程序。
@echo off
SET jarpath=F:\my_project\MyApp.jar
SET logpath=F:\my_project\logs\api_start.log

echo Starting application at %time% >> %logpath%
start /b cmd /c "java -jar %jarpath%"
echo Application started at %time% >> %logpath%

这个批处理脚本的解释:

  • @echo off:关闭命令的回显。
  • SET jarpath 和 SET logpath:分别设置JAR文件和日志文件的路径。
  • echo 命令用于将启动和结束的日志信息写入到日志文件中。
  • start /b cmd /c:创建一个新的命令行窗口来运行Java应用程序,
    /b 参数表示不创建新的窗口。
  • java -jar %jarpath%:执行JAR文件。

将文件保存为.bat扩展名,比如 api_start.bat

  1. 在Windows中,要实现类似于Linux的 nohup命令 后台运行 的的效果,可以使用start命令配合/w参数等待窗口关闭,然后让应用程序在后台继续运行。下面是优化后的批处理脚本:
@echo off
SET jarpath=F:\my_project\MyApp.jar
SET logpath=F:\my_project\logs\api_start.log

echo Starting application at %DATE% %TIME% >> %logpath%

:: 使用wparams变量来传递窗口参数,确保窗口关闭后程序继续运行
SET wparams=/w

:: 启动Java应用程序,并将输出和错误重定向到日志文件
start %wparams% /b cmd /c "java -jar %jarpath%" >> %logpath% 2>&1

:: 等待窗口关闭
timeout /t 5

echo Application started at %DATE% %TIME% >> %logpath%

这个脚本的工作方式如下:

  • @echo off:关闭命令的回显。
  • SET jarpath 和 SET logpath:设置JAR文件和日志文件的路径。
  • echo 命令用于记录应用程序的启动时间。
  • start /b cmd /c:创建一个新的命令行窗口来运行Java应用程序,/b 参数表示不创建新的窗口,/c 参数表示执行完命令后关闭命令行窗口。
  • java -jar %jarpath%:执行JAR文件。
  • >> %logpath% 和 2>&1:将标准输出和标准错误都重定向到日志文件。
  • SET wparams:设置变量以传递/w参数给start命令。
  • timeout /t 5:等待5秒钟,以确保窗口有足够的时间关闭。这个时间可以根据需要调整。

第三步:使用任务计划程序设置定时任务

  • 按下Win + R,输入taskschd.msc,然后按Enter键打开任务计划程序。

在这里插入图片描述

  • 在右侧操作窗格中,点击“创建基本任务…”来开始新任务的创建过程。

在这里插入图片描述

  • 为任务输入一个名称和描述,然后点击“下一步”。

在这里插入图片描述

  • 选择触发器,比如“每天”或“每周”,根据你的需求设置时间,然后点击“下一步”。

在这里插入图片描述

  • 在“操作”页面,选择“启动程序”,然后点击“下一步”。
    在这里插入图片描述

  • 点击“浏览”找到批处理文件(.bat),选择它,然后点击“下一步”。

在这里插入图片描述

  • 确认设置,点击“完成”以保存任务。

在这里插入图片描述

  • 现在,任务已经设置好,它会在指定的时间自动运行 Java程序。
    在这里插入图片描述
  • 重启计算机后,应用自动运行
    在这里插入图片描述

注意事项

  • 确保Java已经正确安装在系统上,并且java命令在系统的PATH环境变量中,这样批处理文件才能找到并执行它。
  • 如果你的Java程序需要特定的环境变量或配置,你可能需要在批处理文件中设置它们,或者在任务计划程序的安全选项中配置适当的用户账户。
  • 对于更复杂的Java程序或需要更多控制的情况,考虑使用PowerShell脚本代替批处理文件,因为PowerShell提供了更强大的功能和灵活性。
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当win10系统的定时任务报错0x1时,可能是由于计划任务中的bat文件的深层调用路径发生了变化,导致无法正确调用到该文件。这种情况通常发生在重命名电脑后,旧的bat文件的调用路径无法更新。\[1\]解决这个问题的方法是创建一个新的空的bat文件,将旧的bat文件中的指令复制到新的bat文件中,然后重新创建计划任务,这样就可以成功执行了。\[2\]另外,还可以通过设置计划任务的起始目录来确保文件的正确读写,避免出现路径错误的问题。\[3\] #### 引用[.reference_title] - *1* *2* [电脑重命名后,win10计划任务执行bat档报0x1解决方案记录](https://blog.csdn.net/beixinlaoda/article/details/131349393)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [WIN10设置计划任务执行报(0x1)调用的函数不正确或调用了未知函数](https://blog.csdn.net/LIUWENCAIJIAYOU/article/details/121471711)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值