☆假设项目放在目录project文件夹下,发布的包放在project/lib下,日志文件放在project/log下,配置文件放在project/conf下,运行的jar为myjar.jar。
☆在下载包后解压,将Java Service Wrapper包中src/bin/的App.bat.in,InstallApp-NT.bat.in,UninstallApp-NT.bat.in和bin/下的wrapper.exe放在project目录下,把后缀.in去掉。【App.bat(可以直接运行程序),InstallApp-NT.bat(安装成Windows服务),UninstallApp-NT.bat(卸载Windows服务)】。修改App.bat,InstallApp-NT.bat,UninstallApp-NT.bat中的set _WRAPPER_CONF="%_REALPATH%conf\wrapper.conf"。(可以用相对路径,比如:set _WRAPPER_CONF_DEFAULT=../conf/wrapper.conf)
☆把Java Service Wrapper包中lib目录下的Wrapper.DLL,wrapper.jar拷贝到project/lib下,在原来的运行的jar文件myjar.jar中的MANIFEST.MF增加Class-Path: 其他jar wrapper.jar wrapper.dll。
☆把Java Service Wrapper包中src/conf目录下的wrapper.conf.in放到project/conf下,去掉后缀.in。然后修改为
wrapper.java.classpath. 2 = dist / myjar.jar
wrapper.java.library.path. 1 = dist
#原来程序运行的入口
wrapper.app.parameter. 1 = myapp.mainClass
wrapper.logfile = log / wrapper.log
wrapper.console.title = MyApp服务
wrapper.ntservice.name = MyApp服务
wrapper.ntservice.displayname = MyApp服务
wrapper.ntservice.description = MyApp服务
比如:
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
wrapper.java.classpath.1=../lib/wrapper.jar
#wrapper.java.classpath.2=../lib/abc.jar
wrapper.java.classpath.2=../lib/spserver.jar
wrapper.java.classpath.3=../lib/swt.jar
wrapper.java.classpath.4=../lib/swt-debug.jar
wrapper.java.classpath.5=../lib/w_base.jar
wrapper.java.classpath.6=../lib/sqljdbc.jar
wrapper.java.classpath.7=../bin/.
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=../lib
# Java Bits. On applicable platforms, tells the JVM to run in 32 or 64-bit mode.
wrapper.java.additional.auto_bits=TRUE
# Java Additional Parameters
#wrapper.java.additional.1=
# Initial Java Heap Size (in MB)
wrapper.java.initmemory=32
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=96
# Application parameters. Add parameters as needed starting from 1
wrapper.app.parameter.1=com.qh.client.StartClient
wrapper.app.parameter.2=../bin/
☆然后直接运行App.bat,如果运行成功的话,然后就可以执行InstallApp-NT.bat发布成Windows服务,然后就可以设置成开机自启动了,不怕别人启动的时候自己的程序没有执行。另外如果在project/bin当成bat的目录的话没这么麻烦。