将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

注册成功

启动,查看日志

访问一下

成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章