簡體   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