繁体   English   中英

如何使用 procrun windows 服务执行程序从 spring-boot 启动可执行 jar?

[英]How to start an executable jar from spring-boot with procrun windows service executor?

我使用spring-boot-maven-plugin创建了一个runnable jar jar 可以使用jar -jar %FILENAME%

但我想使用procrun将其安装为windows服务。

问题:当我然后启动应用程序时,我得到以下输出:

[2016-12-05 12:33:22] [info]  [ 7788] Starting service...
[2016-12-05 12:33:23] [error] [ 4856] FindClass de/app/MyApplication failed
[2016-12-05 12:33:23] [error] [ 7788] Failed to start Java
[2016-12-05 12:33:23] [error] [ 7788] ServiceStart returned 4
[2016-12-05 12:33:23] [info]  [ 7916] Run service finished.
[2016-12-05 12:33:23] [info]  [ 7916] Commons Daemon procrun finished

如果我将文件重命名为 *tar.gz,我可以看到没有目录“de/app/”。 但是一个BOOT-INF/classes/de/app目录。

问题是:为什么应用程序可以通过使用java -jar启动,而不是作为 procrun 服务(基本上应该做同样的事情)?

节目有点晚了,但万一有人偶然发现这个问题:

spring 生成的胖 jar 文件包含包装的依赖项。 如果你想通过 procrun 运行它们,你可以通过调用org.springframework.boot.loader.JarLauncher

因此,在创建服务时,请尝试以下操作:

prunsrv //IS/Myservice --Classpath="C:\my-fat.jar" --StartClass="org.springframework.boot.loader.JarLauncher"

这相当于运行java -jar my-fat.jar

显然,从 1.4.0.RELEASE 开始的 Spring Boot 已经改变了更接近 WAR 包装的 fat jar 包装。

此处描述的问题

作为解决方案,你可以尝试像描述的分类添加到Maven的执行这里,或者只是改变旧版本春天开机。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM