使用Java Service Wrapper,進行簡單配置就可以實現,挺好用的。
:http://wrapper.tanukisoftware.org
下載時要選好CPU類型和作業系統類型,下載Community類型,因為Professional和Standard類型需要認證,如果沒有則會出錯。
網路上的使用方法很多,摘錄一下:
1. 將下載的Java Service Wrapper包解壓到本地,目錄為{WRAPPER_HOME};
2. 服務應用程式名稱為MyServApp,在目錄d:/MyServApp下建立bin、conf、logs、lib目錄;並把你的已有應用程式如NioBlockingServer.class拷貝到bin下;
3. 將{WRAPPER_HOME}/src/bin/下的遺以下檔案拷貝到MyServApp目錄下,並重新命名。
{WRAPPER_HOME}/bin/Wrapper.exe C:/ MyServApp /bin/Wrapper.exe
{WRAPPER_HOME}/src/bin/App.bat.in C:/ MyServApp/bin/MyApp.bat
{WRAPPER_HOME}/src/bin/InstallApp-NT.bat.in C:/ MyServApp/bin/InstallMyApp-NT.bat
{WRAPPER_HOME}/src/bin/UninstallApp-NT.bat.in C:/ MyServApp/bin/UninstallMyApp-NT.bat
4. 將{WRAPPER_HOME}/lib下的以下檔案拷貝到C:/ MyServApp /lib目錄下
{WRAPPER_HOME}/lib/Wrapper.DLL
{WRAPPER_HOME}/lib/wrapper.jar
5. 將{WRAPPER_HOME}/src/conf/wrapper.conf.in拷貝到C:/ MyServApp /conf目錄下並命名為wrapper.conf;並修改wrapper.conf檔案,在其中配置您的應用服務。
主要修改以下幾項即可:
#你的JVM位置:
//這裡如果環境變數中給出了jdk配置,可以直接=java
wrapper.java.command=D:/Sun/j2sdk1.4.0_03/bin/java
#運行參數:如:
//後面的檔案就是App.bat.in重新命名後的檔案名稱
wrapper.java.additional.1=-Dprogram.name=MyApp.bat
#classpath:
//程式運行需要的jar包都要列出來
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../bin/.
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=../lib
#MAIN CLASS 此處決定了使用Java Service Wrapper的方式
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
#你的Java應用類
//包含main函數的class檔案名稱,如果有包則列全名
wrapper.app.parameter.1= NonBlockingServer
//控制台運行時名稱
wrapper.console.title=TestServer
# 服務名
wrapper.ntservice.name=NB
# Display name of the service
wrapper.ntservice.displayname=Nio Nonblocking Server
# 服務描述
wrapper.ntservice.description=Nio Nonblocking Server
//啟動模式,預設是自啟動啟動AUTO_START or DEMAND_START(按需求啟動)
wrapper.ntservice.starttype=AUTO_START
其他的配置根據你的需要改變即可
6. 對以上配置的MyApp.bat進行測試,運行MyApp.bat,就像在Console視窗下運行Tomcat一樣;
7. 對以上配置的服務進行測試,運行C:/ MyServApp/bin/InstallMyApp-NT.bat將把你的應用(此處為NioBlockingServer)安裝到Win32系統服務中了。
8. 開啟控制台-管理程式-服務,看到Nio Nonblocking Server已經在系統服務中了,其他用法就與我們熟悉的Windows服務一樣了。
9. 運行UninstallMyApp-NT.bat可以卸載該服務
如果封裝的整個jar包,那麼把jar包(如檔案名稱為myapp.jar)加入lib檔案夾中,在設定檔中加入如下行
wrapper.java.classpath.2=../lib/myapp.jar
在wrapper.app.parameter.1= NonBlockingServer中寫入的就是jar中進入main函數的類名。
下面是一個設定檔範本,經測試可以使用,按照上面步驟,只需要將以下檔案中的
wrapper.app.parameter.1=
改為你的主程式位置就可以。
#********************************************************************<br /># Wrapper Properties<br />#********************************************************************<br /># Java Application<br />wrapper.java.command=java</p><p># Java Main class. This class must implement the WrapperListener interface<br /># or guarantee that the WrapperManager class is initialized. Helper<br /># classes are provided to do this for you. See the Integration section<br /># of the documentation for details.<br />wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp</p><p># Java Classpath (include wrapper.jar) Add class path elements as<br /># needed starting from 1<br />wrapper.java.classpath.1=../lib/wrapper.jar<br />wrapper.java.classpath.2=../bin/.</p><p># Java Library Path (location of Wrapper.DLL or libwrapper.so)<br />wrapper.java.library.path.1=../lib</p><p># Java Additional Parameters<br />#wrapper.java.additional.1= -Dprogram.name=MyApp.bat</p><p># Initial Java Heap Size (in MB)<br />#wrapper.java.initmemory=3</p><p># Maximum Java Heap Size (in MB)<br />#wrapper.java.maxmemory=64</p><p># Application parameters. Add parameters as needed starting from 1<br />wrapper.app.parameter.1= Schedule</p><p>#********************************************************************<br /># Wrapper Logging Properties<br />#********************************************************************<br /># Format of output for the console. (See docs for formats)<br />wrapper.console.format=PM</p><p># Log Level for console output. (See docs for log levels)<br />wrapper.console.loglevel=INFO</p><p># Log file to use for wrapper output logging.<br />wrapper.logfile=../logs/log.log</p><p># Format of output for the log file. (See docs for formats)<br />wrapper.logfile.format=LPTM</p><p># Log Level for log file output. (See docs for log levels)<br />wrapper.logfile.loglevel=INFO</p><p># Maximum size that the log file will be allowed to grow to before<br /># the log is rolled. Size is specified in bytes. The default value<br /># of 0, disables log rolling. May abbreviate with the 'k' (kb) or<br /># 'm' (mb) suffix. For example: 10m = 10 megabytes.<br />wrapper.logfile.maxsize=0</p><p># Maximum number of rolled log files which will be allowed before old<br /># files are deleted. The default value of 0 implies no limit.<br />wrapper.logfile.maxfiles=0</p><p># Log Level for sys/event log output. (See docs for log levels)<br />wrapper.syslog.loglevel=NONE</p><p>#********************************************************************<br /># Wrapper Windows Properties<br />#********************************************************************<br /># Title to use when running as a console<br />wrapper.console.title=@app.long.name@</p><p>#********************************************************************<br /># Wrapper Windows NT/2000/XP Service Properties<br />#********************************************************************<br /># WARNING - Do not modify any of these properties when an application<br /># using this configuration file has been installed as a service.<br /># Please uninstall the service before modifying this section. The<br /># service can then be reinstalled.</p><p># Name of the service<br />wrapper.ntservice.name=@app.name@</p><p># Display name of the service<br />wrapper.ntservice.displayname=@app.long.name@</p><p># Description of the service<br />wrapper.ntservice.description=@app.description@</p><p># Service dependencies. Add dependencies as needed starting from 1<br />wrapper.ntservice.dependency.1=</p><p># Mode in which the service is installed. AUTO_START or DEMAND_START<br />wrapper.ntservice.starttype=AUTO_START</p><p># Allow the service to interact with the desktop.<br />wrapper.ntservice.interactive=false</p><p>
注意事項:
不要改變檔案的相對路徑
安裝好服務後,不要移動檔案和檔案夾
也許您該定期清理logs/wrapper.log記錄檔,防止記錄檔過大
備份好資料庫和資料檔案,定期查看