在windows环境下,有些时候,我们需要让java程序以service的形式来运行,省去那个黑窗口,在或是当java程序关闭时要去做一点事情,这种场景下这个功能就显得非常的实用了。
如果是在unix环境下,选择的就多一些,比如自己编写一段shell ,或是利用apache daemon,在或是利用wrapper for unix版,都是非常的便利。
apache daemon可以参考:使用apache daemon让java程序在unix系统上以服务方式运行
下面我写个demo来看一下wrapper如何把java以NT Service的方式运行。
首先我们到:http://wrapper.tanukisoftware.com/doc/english/download.jsp 下载对应的 wrapper for windown版本到本地。
解压后会得到如下几个文件:
wrapper.conf
wrapper.jar
wrapper.exe
wrapper.dll
我当前的目录结构是:
c:/win32/
|
— wrapper.conf
— wrapper.exe
— wrapper.dll
— lib
|
— wrapper.jar
— hook .jar
— other.jar
— log
好,我们根据这个目录结构来编辑wrapper.conf,内容如下:
#********************************************************************
# Wrapper Properties
#********************************************************************
set.default.HOOK_TEST_HOME=.
set.default.HOOK_TEST_BASE=.
set.default.HOOK_TEST_CONF=%HOOK_TEST_HOME%
set.default.HOOK_TEST_DATA=%HOOK_TEST_HOME%/log
wrapper.working.dir=.
# Java Application
wrapper.java.command=java
# Java Main class. This class must implement the WrapperListener interface
# or guarantee that the WrapperManager class is initialized. Helper
# classes are provided to do this for you. See the Integration section
# of the documentation for details.
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
wrapper.java.classpath.1=%HOOK_TEST_HOME%/lib/*.jar
wrapper.ping.timeout=0
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=%HOOK_TEST_HOME%
# Java Additional Parameters
#wrappe