2016-12-05 43 views
1

我使用spring-boot-maven-plugin創建了一個runnable jar。 罐子可以使用jar -jar %FILENAME%運行。如何使用procrun windows service executor從spring-boot啓動可執行文件jar?

但我想使用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的,我可以看有沒有目錄「德/應用/」。但是一個BOOT-INF/classes/de/app目錄。

問題是:爲什麼應用程序可以通過使用java -jar啓動,但不是作爲procrun服務(基本上應該這樣做)?

+2

Spring Boot有它自己的啓動器,所以沒有它與'procrun'不一樣。當使用'java -jar'時,Spring引導有自己的啓動程序和類路徑機制來處理文件格式。如何在[參考指南](http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html)中(稀疏地)記錄一個作爲Windows服務的spring啓動應用程序#部署窗口)。你應該使用'winsw'而不是'procrun'。 –

回答

0

顯然,從1.4.0.RELEASE開始的Spring Boot有一個更接近WAR包裝的改變的fat jar包裝。

問題描述here

作爲一種解決方案,您可以嘗試添加一個分類器到像描述的here這樣的maven執行中,或者只是更改爲舊版本的Spring Boot。

希望這會有所幫助!

+0

由於我不想降級:我嘗試添加'classifier',反正該jar顯示相同的錯誤。 – membersound

+0

您可以嘗試降級以查看這是否是錯誤。 –

+0

嗯我試過'1.3.8.RELEASE',它會產生一個正確路徑的'jar'。無論如何,即使我可以在正確的文件夾中看到該類,我也會得到相同的錯誤。 – membersound

相關問題