可执行java程序,打包成jar,并注册为Windows的系统服务

为了实现把自己的可执行java程序,打包成jar,并注册为Windows的系统服务,
1,采用了一个中间件 wrapper-windows-x86-32-3.5.25 (来自SourceForge)
2,需要wrapper service其中的 bin\下的bat命令用于启动/安装/卸载/停止 自定义服务
    、wapper.jar和wapper.dll文件作为引用库
    、配置wrapper.conf(最关键,配置main入口类、引用的所有jar包、服务信息)
3,“wrapper.java.mainclass=”项配置为用户自己的入口类则需要在程序中继承WrapperListener
    或保持原始值(org.tanukisoftware.wrapper.WrapperSimpleApp)则原始程序无需添加继承代码;
4,对于java机器人类,在注册为windows服务后,程序java.awt.Robot对于调用鼠标点击都无效了?
    没有注册为服务,仅仅通过wrapper包装并没有影响自动移动、点击;
5,对于读写文件的自动任务,注册为服务、包装后 可以正常执行文件读写功能;
6,MANIFEST.MF的Main-Class: com.autoclick.AuClick在实现WrapperListener后,此jar包(auc2014.jar)找不到主类,不能再可执行;
    方式二,即,继承WrapperListener的方式去注册windows服务,这种方式不需要配置MANIFEST.MF的Main-Class、Class-Path;
7,在使用wrapper的RunAuc2014-NT.bat开启、关闭Robot点击程序,这种情况下,最小化DOS窗口不影响鼠标移动/点击。
    可以作为最理想的应用方式(不同于DOS窗口运行)

摘录:
JSW的使用有三种方式:

    用WrapperSimpleApp class启动应用程序。这是使用JSW最简单的方式,也是推荐的方式。但使用这种方式有个问题,因为JSW是直接使用System.exit()退出JVM的,这等如使用者在应用程序运行期间直接按ctrl-c退出程序一样。如果应用程序在退出前需要执行clean up的话,需要自行登记shutdown hook,或不要使用这种方式。以这种方式配置JBoss的例子(Win32, Linux / UNIX)。

    第二种方式是使用WrapperStartStopApp class。这种方式是给Tomcat之类的应用程序(即在一个类启动,但以另一个类结束的应用程序)。通常这类的应用程序都会在启动时打开一个server socket,用来等待要求程序结束的连接,当接收到要求结束的请求,“结束”类会被执行。而JSW就是在收到停止运行的要求时,直接执行这个“结束”类。以这这种方式配置Tomcat的例子(Win32, Linux / UNIX)。

    第三种方式,也是最复杂,最灵活的一种方式,也是唯一一种需要编程的方式。这种方式要写一个实现WrapperListener接口的类。有些功能是这种方式独有的,例如直接在程序中接收及回应系统控制事件(如启动及结束)。但这也增加了程序的复杂程度。如果不需要这些功能的话,还是使用第一种方式比较方便。以这种方式配置的例子。

注:使用第一种方式最好不要使用JRE1.3.x或以上,因为1.2.x无shutdown hook的技持。如程序只能使用JRE1.2.x,就需要使用第二或第三种方式使用JSW。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值