实现思路:

1. 需要有JRE环境,需要有winsw的exe程序,需要java项目打包成jar,需要新建个xml文件
2. 三个文件重命名,名称一样(文件后缀名不同), 修改xml配置
3. 安装成windows服务,核对下启动方式为自启动;

第一步:下载winsw程序

1 下载winsw程序 链接: https://github.com/winsw/winsw/releases

选择稳定的版本 WinSW v2.11.0 ,直达链接:https://github.com/winsw/winsw/releases/tag/v2.11.0

springboot自动启动quarts springboot开机自启动_jar


springboot自动启动quarts springboot开机自启动_windows_02

软件运行需要.Net Framework软件环境,根据需要下载,一般情况windows是有这个环境的,查看方法 在地址栏上输入C:\Windows\Microsoft.NET\Framework ,按回车键即可查看,缺失下载安装。

springboot自动启动quarts springboot开机自启动_xml文件_03


我只下载了WinSW-x64.exe (根据系统版本下载x64还是x86)

第二步:重命名三个文件,修改xml

  1. 重命名三个文件,exe程序,jar包,新建xml文件,名称一样
  2. springboot自动启动quarts springboot开机自启动_java_04

  3. myapp.xml文件的内容
<service>
  
  <!-- 服务标识.它在 Windows 系统中应该是唯一的 -->
  <id>myapp</id>
  <!-- 服务的显示名称 -->
  <name>myapp Service (powered by WinSW)</name>
  <!-- 服务说明 -->
  <description>This service is a service created from a minimal configuration</description>
  <!-- 启动模式 -->
  <startmode>Automatic</startmode>
  <!-- 执行的命令,比如启动springboot应用的命令java -->
  <executable>java</executable>
  <!-- 命令执行参数 -->
  <arguments>-jar myapp.jar</arguments>

</service>

参数解释:

id:安装windows服务后的服务ID,必须是唯一的。
name:服务名称,必须是唯一的。一般和id一致即可。
description:服务描述,可做备注使用。
executable:执行的命令,比如启动springboot应用的命令java。
arguments:命令执行参数,比如 包路径,类路径等。

踩坑指南,如果复制我的xml文件,一定要下载WinSW v2.11.0版本的程序

有的教程说写程序的路径,以及路径带不带引号之类的 
比如 <arguments>-jar "D:\test\myapp.jar"</arguments>
实践过之后发现是winsw选择的版本不一样导致

第三步:安装服务

以管理员身份执行cmd,切换到exe所在目录,执行如下命令即可。

myapp.exe install

如果出现拒绝访问,原因是非管理员身份运行的cmd;

除此之外还有其他命令

myapp.exe uninstall	(删除服务)
myapp.exe start		(启动服务)
myapp.exe stop		(停止服务)
myapp.exe restart	(重启服务)
myapp.exe status	(查看状态)

最后:查看服务

右键任务栏–》任务管理器–》服务 (第二栏最后一项)–》打开服务(左下)
键盘输入服务的名称就可以定位到了,找到myapp

springboot自动启动quarts springboot开机自启动_java_05


回到程序路径,会有新文件生成,可以查看日志信息。