一、前言
很多年前写过一篇《使用java service wrapper把windows flume做成服务》的文章,也是把jar包安装成windows服务,今天介绍另外一种更简便的方案。
二、正片
这次使用的工具是 winsw
,一个Windows服务包装器。下面看详细介绍
首先从github中下载这个工具,下载地址如下 https://github.com/winsw/winsw/releases
有很多个版本,选择适合自己系统的版本进行下载(示例是使用64位的安装包),以及xml配置(二选一,本例以sample-minimal.xml为例)
把这两个文件放到同一个目录,然后把打包好的jar包也放进去,为了好区分,可以把exe和xml文件改成以jar包一样的名字。如:
然后修改test-service.xml
配置,只需要修改四个地方,如图
修改后的内容,中文可能会有异常,建议使用英文注释
<service>
<!--安装成Windows服务后的服务名-->
<id>test-service</id>
<!--显示的服务名称-->
<name>test-service</name>
<!--对服务的描述-->
<description>test-service</description>
<!--这里写java的路径,如何配置了环境变量直接写"java"就行-->
<executable>java</executable>
<!--jar包的执行参数 -jar后面的是项目名-->
<arguments>-Dfile.encoding=utf-8 -Xmx256m -jar test-service-1.0.jar</arguments>
<!--日志模式-->
<logmode>rotate</logmode>
</service>
使用终端管理员执行服务安装命令
test-service.exe install
显示下面结果就表示成功
执行成功后,打开服务可查看到刚才安装的服务
右键启动,或者通过命令启动。其他命令
命令 | 描述 |
---|---|
install | 安装服务 |
uninstall | 卸载服务 |
start | 启动服务 |
stop | 停止服务 |
restart | 重启服务 |
status | 查看服务状态 |
refresh | 刷新服务属性,无需重新安装 |
customize | 自定义包装器可执行文件 |
dev | 实验的命令 |
剩下的自己去尝试吧。