Java Jar程序打包成Windows NT服务

1.概述

临时接到一个中间件的任务,需求是从RabbitMq接受数据解析到Sql server。

本来是个轻松的任务,可是在收尾的时候做成windows服务时,我崩溃了,

这个问题足足整了我2天,我的心情是崩溃的,我2天没睡觉了,

怀着万分悲痛的心情,写下这篇博客,希望你们能通过我的博客尽快解决。


2.技术选择

话不多说直接进入正题。

我在网络上搜了各种资料总结出已知的办法。

2_1.使用instsrv.exe和srvany.exe打包bat。(靠谱)

2_2.JavaServices (这东西很久没更新了,不推荐使用,折腾了我很久,还是不行)

2_3.java service wrapper (32位免费,64位收费,所以弃之)

2_4.commons-daemon (apache的项目,听说好用,看起来步骤蛮多,放弃)


3、解决方案

instsrv.exe是我认为最快捷最方便的解决方案,其他的选择请慎重。

instsrv.exe.exe和srvany.exe是Microsoft Windows Resource Kits工具集中 的两个实用工具,这两个工具配合使用可以将任何的exe应用程序作为window服务运行。srany.exe是注册程序的服务外壳,可以通过它让应用程序以system账号启动,可以使应用程序作为windows的服务随机器启动而自动启动,从而隐藏不必要的窗口。

instsrv.exe+srvany.exe  下载地址

3_1.用instsrv.exe安装srvany.exe

将instsrv.exe和srvany.exe拷贝到"C:\WINDOWS\system32"目录下(如果是64bit系统,则将其拷贝到C:\WINDOWS\SysWOW64),用instsrv.exe安装srvany.exe,进入dos界面: 

C:\Documents and Settings\administrator>C:\WINDOWS\SysWOW64\instsrv.exe MyService C:\WINDOWS\SysWOW64\srvany.exe 

注:Myservice是自定义的服务的名称。


3_2.点击"开始-运行-regedit"打开注册列表,找到到以下路径: 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService 

如果该服务名下没有Parameters项目,则对服务名称右键新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。

Application           值为你要作为服务运行的程序地址

AppDirectory        值为你要作为服务运行的程序所在文件夹

AppParameters     值为你要作为服务运行的程序所需要的参数


配置完成后就完成了,第一次需要去服务手动启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值