java service wrapper封装Java应用为Windows服务

最近在公司做一数据采集的java应用(非web项目),考虑到用户操作的便捷性,没有采用javac编译java执行的方式运行,而是利用java service wrapper来将其封装成windows服务。

另外,该java service wrapper封装windows服务也适用于在web项目中,用户使用tomcat或jboss应用服务器启动后桌面出现黑色框框,这个黑色框框极易被用户不小心关掉,引起不必要的麻烦。这个时候将应用封装为windows服务,可避免以上的问题。

下面将以非web项目为例介绍封装windows服务的过程。

一、下载

官方网址:http://wrapper.tanukisoftware.com/doc/english/download.jsp 

大家可以根据自己的需求下载相应的版本,但需要注意的是Standard和Professional两个版本是需要listence的,也就是需要钱的,否则每次启动只能使用15分钟将自动停止服务。

二、简介

我这里下载的是windows x86 32-bit Community版本,下载后的文件结构如下:

以下是官方给出的一些Wrapper的优点:

         (1) 使用我们的产品无须在你的程序中添加任何额外的代码。
         (2) 当你的程序或JVM出现问题时会自动响应事先定制的策略。
         (3) 当出现问题时会及时进行通知。
         (4) 完善的日志记录功能可以更好为您提供支持。
         (5) 在不同的系统上你可以指定一个标准的流程相同流程,也就是说相同的程序可以不必修改即运行于不同系统。
         (6) 可以将你的应用安装成windows或unix的服务或守护进程。

三、封装应用

参考地址:http://wrapper.tanukisoftware.com/doc/english/qna-service.html

以我的项目airport为例说明,在F盘新建airport文件夹作为应用的根目录,在airport下面新建如下文件夹(airprot目录以“%WRAPPER_HOME%”表示):

 

将下载的wrapper中的文件分别复制到到相应目录下:

 

以上这些copy操作中间两项不是必须的,根据需要操作,详细信息参考上面的地址。

下面对%EXAMPLE_HOME%\conf\wrapper.conf配置文件进行修改:

这个截图是官方给出的参考资料,其中wrapper.app.parameter.1指向程序的入口,即main方法所在类,wrapper.java.classpath.*依次指出程序所需的jar包,最后一个指向应用的class编译文件目录../lib/classes,我的具体配置文件可以在这里下载http://download.csdn.net/detail/ningzuobei/9144371

最终我的airport的结构如下:

 

以上方法是使用WrapperSimpleAPP集成实现的,还可以使用WrapperStartStopAPP集成实现。二者区别与联系

第一种方式简单,而且java service wrapper极度推荐的一种方式。这种方式当wrapper停止的时候jvm中的线程不会清除,当然在wrapper通过system.exit(int)来推出jvm。但是如果应用程序有自己的钩子函数来做清除的话,当wrapper停止的时候会给应用程序一个机会去清除jvm的线程占用的资源,之后再退出jvm,如果没有钩子的话就相当于windows中的ctrl+c操作。

第二种:特别用于启动时会开启一个服务端socket等待连接,而关闭时则通过连接触发应用的停止,就像TOMCAT这些应用服务器启动和关闭的时候就适合这种集成方式。这种方式和上面的方式不同之处是在wrapper退出jvm的时候会清除。其具体配置是:具体配置查看wrapper官方网址

四、部署测试

1、程序在console中运行测试:在cmd命令行窗口中进入%EXAMPLE_HOME%目录下执行如下命令bin\wrapper.exe -c ..\conf\wrapper.conf,如果窗口中出现如下信息则说明运行成功,然后Ctrl+C即可停止运行。

2、以服务形式运行测试:如果以上运行有错,则进行调试修改,如果无误,则可以放心安装服务。

安装服务:同样在cmd命令行窗口中进入%EXAMPLE_HOME%目录下执行命令bin\wrapper.exe -i ..\conf\wrapper.conf,如果窗口中出现如下信息则说明安装成功。然后在服务中即可查看到该服务如下图所示:

启动服务:在cmd命令行窗口中进入%EXAMPLE_HOME%目录下执行命令bin\wrapper.exe -t ..\conf\wrapper.conf,如果窗口中出现如下信息则说明启动成功。

停止服务:在cmd命令行窗口中进入%EXAMPLE_HOME%目录下执行命令bin\wrapper.exe -p ..\conf\wrapper.conf即可停止服务。

删除服务:在cmd命令行窗口中进入%EXAMPLE_HOME%目录下执行命令bin\wrapper.exe -r ..\conf\wrapper.conf即可删除服务。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值