java service wrapper守护进程并注册成windows服务

java service wrapper主要用于包装其他java程序,例如自己开发的服务端, 提供如下特性:

  • 作为windows服务或者unix守护进程运行;
  • 增强程序的可靠性,程序崩溃后的自动重启,比如内存溢出,虚拟机崩溃等造成JVM退出的监控和恢复运行(重新启动);
  • 标准的,可独立使用的配置JVM参数的脚本;
  • 支持java应用程序重启JVM,比如应用程序修改了配置文件,或者重启系统避免内存溢出等问题;
  • 灵活的配置;
  • 简化应用程序的安装;
  • 记录日志。
官方下载地址:http://wrapper.tanukisoftware.com/doc/english/introduction.html
目前分为个人版、标准版和社区版,社区版是免费的。
现在开始描述笔者的配置与调试过程。

笔者的电脑操作系统是WIN XP,所以下载的是wrapper-windows-x86-32-3.5.14版本,解压开,放到D盘,路径是D:\wrapper-windows-x86-32-3.5.14。
  1. 再在D盘建立一个java程序的目录project,分别在project下建立bin,lib,conf ,log 4个目录,将程序包放入bin目录,程序所需的lib包放入lib目录,配置文件放到conf目录
  2. 此时,再将D:\wrapper-windows-x86-32-3.5.14\bin下的wrapper.exe复制到project目录下;
  3. 再进入D:\wrapper-windows-x86-32-3.5.14\src\bin目录,将App.bat.in文件、InstallApp-NT.bat.in文件、UninstallApp-NT.bat.in文件也复制到project目录下,并重命名将后面的.in去掉
  4. D:\wrapper-windows-x86-32-3.5.14\conf目录下的wrapper.conf文件复制到project\conf目录下
好了,复制文件的工作已经完成了,现在要开始进行配置了。
  1. 编辑刚刚重命名后的App.bat文件、InstallApp-NT.bat文件、UninstallApp-NT.bat文件,找到set _WRAPPER_CONF_DEFAULT的设置,将其改为set _WRAPPER_CONF_DEFAULT=conf/wrapper.conf,表明启动时读取默认配置文件的路径是wrapper.conf这个文件
  2. 再进入project\conf目录,找到刚才复制的wrapper.conf文件,找到wrapper.java.mainclass,将其配置为wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp;找到wrapper.java.classpath.1,将其配置为wrapper.java.classpath.1=lib/*.jar
    wrapper.java.classpath.2=bin/*.jar    wrapper.java.classpath.3=AxleConf
    (如果有更多的环境变量则可自行配置);找到wrapper.java.library.path.1设置为wrapper.java.library.path.1=lib;找到wrapper.app.parameter.1设置为wrapper.app.parameter.1=com.insigma.cms.axle.AxleTest(自己软件的main入口)
  3. wrapper.console.title这个是程序的title,自行配置
  4. wrapper.displayname这个是注册成服务后,服务的名称,自行配置
  5. 其余的相关的日志、邮件服务等的配置根据自行需要进行配置
  6. 找到# wrapper.debug=TRUE,取消#号的注释则变为调试模式,可看到更详细的日志
到此为止,配置工作完成了,让我们来测试一下吧!
返回到根目录project,双击App.bat,如果你的程序能正常启动,那么恭喜你,说明,你配置成功了。
这时,你可以打开InstallApp-NT.bat,将你的程序注册为Windows服务,开机启动后他会自动启动你的程序,重启电脑试试,是否看到了你的java.exe~。UninstallApp-NT.bat是取消注册windows服务。
同理可将StartApp-NT.bat.in和StopApp-NT.bat.in文件复制过来,修改里面的配置后,可以启动服务或停止服务(当然要先注册成Windows服务)

好了,有时间再看看linux的是否有什么不一样。

你可能感兴趣的:(java,jvm,windows,工作,service,wrapper)