Windows 64位環境的Java服務配置
最近有個任務,需要遠程起調Windows64服務器下的程序,那么需要在Windows服務器中注入一個deamon服務,都知道Linux環境做成后臺服務非常簡單,nohup &很快能解決問題,但windows環境總是多重磨難。
一開始我先問了個朋友,他回答是沒做成服務,是把寫個Pathon包在java外面,然后編譯成exe,在啟動中加入,我一聽覺得有些麻煩,還需要繞一圈才能起調。
先搜Java windows service, 推薦***Wrapper,并且大名鼎鼎的ActiveMQ也是用的他做的服務,經過驗證,配置很簡單,copy wrapper.exe, wrapper.dll, wrapper.jar到自己的目錄,并配置一個wrapper.conf, 測試。
- wrapper.exe -c wrapper.conf
發現有問題,需要一個licence key,需要購買。
也許還有方法去破解,不過看了一個老外說wrapper對windows64位并不免費,并推薦Procrun之后,決定轉到這一陣地,加上大名鼎鼎的Tomcat也是用它做的服務。整個配置如下:
1.下載prunsrv
http://archive.apache.org/dist/commons/daemon/binaries/windows/
下載commons-daemon-1.0.8-bin-windows.zip
網上找這個不容易,后來才在commons-daemon-1.0.8-bin-windows.zip里面找到這個,一般會找到http://commons.apache.org/daemon/download_daemon.cgi,這里面并沒有prunsrv.exe
解包后,64位機器用amd64/prunsrv.exe
2.解壓后復制文件
a. copy commons-daemon-1.0.8-bin-windows/amd64/prunsrv.exe to your app path
這是做服務的執行程序
b. copy commons-daemon-1.0.8-bin-windows/prunmgr.exe 并改名 yourappname.exe
監控服務配置及運行的程序
3.寫兩個腳本
a.一個安裝bat
- @echo off
- set LIB_HOME=******
- set APP_HOME=******
- %APP_HOME%\prunsrv.exe //IS//StartService --DisplayName="Start Service" --Description="Start a server." ^
- --Install=%APP_HOME%\prunsrv.exe --Jvm=%JAVA_HOME%\jre\bin\server\jvm.dll --JvmMs=256 --JvmMx=1024 ^
- --StartMode=jvm --Startup=auto --StopMode=jvm --StartClass= --StartParams= ^
- --Classpath=%LIB_HOME%\*.jar; ^
- --LogPath= --LogPrefix=
^是windows命令的折行符,為了避免在一行中寫過長的命令。(Linux 是\)
在dos環境下執行這個腳本,執行后
這樣可以在控制面板-->管理工具-->服務里面可以看到名稱為StartService的服務
注意:--install=后面不要省%APP_HOME%\,不然會報告文件找不到
b.寫一個uninstall腳本
- @echo off
- set APP_HOME=******
- %APP_HOME%\prunsrv.exe //DS//StartService
這個可以卸掉install的服務
c.更詳細的配置文檔可以看apache文檔
http://commons.apache.org/daemon/procrun.html
原文鏈接:http://zhousheng29.iteye.com/blog/1320882
【編輯推薦】