Java jar 作为Windows service运行大坑与解决方式

最近在做的一个java项目需要作为windows的service在windows上运行。最初的解决方案就是利用windows自带的sc命令来创建windows service,也确实注册成功了。

具体的命令是sc create ... (最后service执行的命令就类似...java.exe -jar a.jar)

但是发现无法启动,会报error 1053 the service did not respond to the start or control request in a timely fashion。

后来查了半天问题,终于在Stack Overflow上看见有一个post里有个回答提到java.exe不可以直接做成service

解决方案基本都是利用第三方的工具,类似nssm,java service wrapper等。因为我这边的需求是用户下载安装包要尽量小,所以我直接采用了把nssm打到安装包里,然后用nssm去注册。

nssm流程:

nssm install...

nssm start…(具体的语法可以google~远远不止这两个命令,可以设置很多参数)

可参考

https://stackoverflow.com/questions/37003271/inno-setup-and-nssm-service-working-integration

posted @ 2019-01-24 19:00  SmallMushroom  阅读(1907)  评论(0编辑  收藏  举报