实现思路:
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
软件运行需要.Net Framework软件环境,根据需要下载,一般情况windows是有这个环境的,查看方法 在地址栏上输入C:\Windows\Microsoft.NET\Framework ,按回车键即可查看,缺失下载安装。
我只下载了WinSW-x64.exe (根据系统版本下载x64还是x86)
第二步:重命名三个文件,修改xml
- 重命名三个文件,exe程序,jar包,新建xml文件,名称一样
- 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
回到程序路径,会有新文件生成,可以查看日志信息。