参见英文答案 >
How to create windows service from java jar? 7个
我有一个JAR文件,我想注册并运行它作为Windows服务.使用配置良好的JAR和已注册的JVM关闭挂钩,这不应该是一个很大的工作.
我已经有一个带有外部lib目录的JAR,我可以用java -jar My.jar启动它,并用Ctrl C停止.
我还检查了JSL,JSmooth和Apache,并没有工作的解决方案.
我需要一个很好的教程的工作解决方案.
更新:我成功地与两个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或类似的东西一起使用)