jar发布成windows服务的两种方式
Winsw
winsw(Windows Service Wrapper)是一个开源项目,它可以让我们快速把一个可执行的程序注册为Windows的系统服务。
Download & Install
下载地址:https://github.com/kohsuke/winsw/releases
1、下载对应平台的.exe(.net2和.net4)。下载地址提供了两份配置文件:
- sample-allOptions.xml:包含所有配置项
- smaple-minimal.xml:最小配置项
2、把下载的.exe文件重命名为你自己要用的服务名称,如myapp.exe
3、在myapp.exe同目录下创建xml配置文件,可以复制上面下载的xml,简单配置如下:
<service>
<!-- 该服务的唯一标识 -->
<id>myapp</id>
<!-- 注册为系统服务的名称 -->
<name>myapp</name>
<!-- 对服务的描述 -->
<description>Send the data to customer</description>
<!-- 将java程序添加到系统服务 -->
<executable>java</executable>
<!-- 执行的参数 -->
<arguments>-jar "myapp.jar"</arguments>
<!-- 日志模式 -->
<logmode>rotate</logmode>
</service>
这里配置了一个java的应用程序。
Use
注册服务
myapp.exe install
卸载服务
myapp.exe uninstall
启动服务
myapp.exe start
关闭服务
myapp.exe stop
重启服务
myapp.exe restart
查看状态
myapp.exe status
NSSM
NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。
Download & Install
下载地址:http://www.nssm.cc/release/nssm-2.24.zip
1.将打包好的jar包放到一个文件夹中,编写run.bat文件,run.bat内容为:
java -jar xxxx.jar
2.找到对应的nssm.exe文件,打开cmd窗口,输入命令:
nssm.exe install
出现界面:
Use
1、在Path处选择jar包所在的run.bat
2、找到下图中标记的I/O中的Output
和Error
,选择输出日志的目录,例如:
D:\LOG\Output.txt
3、Service name 处填写要发布的服务名称
4、点击Install service安装服务,cmd进入服务就能看到刚发布的服务名称,启动即可
卸载服务命令:nssm remove 服务名称