2013-02-27 126 views
14

我有一個JAR文件,我想註冊並將其作爲Windows服務運行。通過配置良好的JAR和已經註冊的JVM關閉掛鉤,它不應該是一個大工作。將JAR作爲Windows服務運行

我已經有一個JAR與外部lib目錄,我可以從java -jar My.jar開始它,並停止與Ctrl+C

我也檢查了Apache沒有工作解決方案的JSL,JSmooth和procrun。

我需要一個有很好教程的工作解決方案。

更新:我既procrun(最後),和手動.NET服務包裝太...這裏成功是我INSTALL.BAT的procrun版本的代碼:

set PR_PATH=%CD% 
SET PR_SERVICE_NAME=MyService 
SET PR_JAR=MyService.jar 
SET START_CLASS=org.my.Main 
SET START_METHOD=main 
SET STOP_CLASS=java.lang.System 
SET STOP_METHOD=exit 
rem ; separated values 
SET STOP_PARAMS=0 
rem ; separated values 
SET JVM_OPTIONS=-Dapp.home=%PR_PATH% 
prunsrv.exe //IS//%PR_SERVICE_NAME% --Install="%PR_PATH%\prunsrv.exe" --Jvm=auto --Startup=auto --StartMode=jvm --StartClass=%START_CLASS% --StartMethod=%START_METHOD% --StopMode=jvm --StopClass=%STOP_CLASS% --StopMethod=%STOP_METHOD% ++StopParams=%STOP_PARAMS% --Classpath="%PR_PATH%\%PR_JAR%" --DisplayName="%PR_SERVICE_NAME%" ++JvmOptions=%JVM_OPTIONS% 

我冒昧地

  • 從同一目錄下的jar和prunsrv.exe是
  • 運行這個罐子有它的工作MANIFEST.MF
  • ,並且你有關閉掛鉤註冊到JVM中(例如在spring中使用context.registerShutdownHook())...
  • 不使用jar之外的文件的相對路徑(例如log4j應該與一起使用log4j.appender.X .File = $ {} app.home /logs/my.log或東西一樣)

感謝Apache procrun隊(http://commons.apache.org/proper/commons-daemon//procrun.html)和marifnst(http://a089lp.wordpress.com/tag/procrun-tutorial/

更新2:一個新的優秀教程與winsv:https://dzone.com/articles/spring-boot-as-a-windows-service-in-5-minutes

+0

殺死我知道,論壇,但我沒有看到工作解決方案在那裏免費.. – BTakacs 2013-02-27 14:45:34

+0

如果我能夠刪除這個問題作爲重複,它會刪除一個很好的答案。 (我已經將我的答案複製到了指定的帖子中) – BTakacs 2013-02-28 13:25:47

+0

這裏是使用prunsrv的一步一步走過程:https://support.google.com/gsa/answer/6316721?hl = zh_CN – crowchirp 2017-12-06 20:19:21

回答

5
+0

謝謝。它使用Process.Start(「java」,「-Jar MyJar.jar」) – BTakacs 2013-02-27 17:21:08

相關問題