将java应用(springboot jar)注册成Windows服务
将java应用注册成Windows服务
将java应用程序jar注册成windows服务随机自启动,不再需要命令窗口打开,避免误操作。以springboot为例。
首先准备好一个完整的springboot项目,我们修改pom.xml文件,将其打包成jar
使用eclipse打包,右击项目名,选择 Run as > Maven build...
输入Goals为package,选择跳过测试Skip Tests,然后run
结束后在项目目录target下可找到jar
打包的工具有很多种,这里主要介绍winsw,其他方式如直接使用sc命令sc create 这种方式注册的服务往往会启动报错,另一种方式是使用procrun,此方法对于一般的jar包好使,但是springboot打包成jar后
与普通jar不同,class文件在BOOT-INF***册完启动后会class not found,解决方法参考文章:
https://www.2cto.com/kf/201801/714529.html 还是有些麻烦,且我想把所有的文件都打包入jar,故换方法,最终选择winsw注册
winsw是一款可将可执行程序安装成Windows Service的开源工具,github:https://github.com/kohsuke/winsw/releases
使用方法也很简单,只需要必须的exe和一个xml配置文件即可,我们选择下载WinSW.NET4.exe,两个配置文件可以下载下来用于参考
首先创建文件夹RZSpider,将打包好的jar改名为RZSpider.jar,将刚刚下载好的winsw更名为RZSpider.exe一起复制进去,创建一个xml文件RZSpider.xml用于配置注册信息,再创建两个bat文件用于安装和卸载服务,创建一个bin文件夹用于存放启动停止服务的bat文件,后两项可以不创建。
springboot需要的文件资源config和lib以及resources
接下来书写xml配置,配置信息如下
<configuration>
<id>RZSpiderService</id>
<name>RZSpiderService</name>
<description>This is RZSpider service.</description>
<executable>java</executable>
<arguments>-jar RZSpider.jar</arguments>
<!-- 开机启动 -->
<startmode>Automatic</startmode>
<!-- 日志配置 -->
<logpath>logs/service</logpath>
<logmode>rotate</logmode>
</configuration>
id为任务管理器中服务名,配置开启自启动以及日志目录,最简配置即可,配置好之后实际上就可以注册服务了,我们在RZSpider目录下按住shift同时右击鼠标选择在此处打开命令窗口,输入RZSpider.exe install即可安装服务,输入RZSpider.exe uninstall即卸载服务,同样启动停止重启即,start ,stop ,restart。
为了方便起见,我们将命令写入bat文件,这样直接双击即可完成相同命令,RZSpider目录**册和卸载服务的bat文件内容简单如下
把命令集合放入bin目录
注意bin目录下bat命令要使用相对目录
..\RZSpider.exe start
注册成功
启动,查看日志
访问一下
成功。
推荐阅读
-
通过 WinSW将 jar 包注册成 windows服务
-
将springboot程序打包成jar文件 在windows服务器上以服务运行
-
将java应用(springboot jar)注册成Windows服务
-
Java程序注册Windows服务、Springboot项目注册windows服务的几种方式、Springboot优雅关闭
-
将influxdb注册成windows服务
-
通过JavaService.exe将jar注册成win服务方式
-
通过JavaService.exe将jar注册成win服务方式
-
将JAVA程序做成WINDOWS服务的方法 WindowsJava应用服务器BlogHTML
-
将JAVA程序做成WINDOWS服务的方法 WindowsJava应用服务器BlogHTML
-
c# 将Minio.exe注册成windows服务