![](/img/trans.png)
[英]How to start a java application as a windows service with procrun?
[英]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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.