2016-12-02 16 views
1

WinRun4Jを使用してWindowsサービスとしてSpringブートアプリケーションを実行します。 WinRun4Jはメインクラスを見つけることができないので、動作しません。私はそれがspring-boot-maven-pluginがBOOT-INFフォルダ内のソースを収集し、そこのクラスにアクセスできないために気づいた。 BOOT-INFフォルダの外目的のクラスと春ブーツ実行可能jarファイルを生成する方法がWindows用Springブート&WinRun4JサービスJAR:BOOT-INFフォルダ外のサービス起動クラス

[info] Registering natives for Native class 
[info] Registering natives for FFI class 
[err] Could not find service class 
[err] Failed to initialise service: 1 
java.lang.NoClassDefFoundError: SpringBootLauncherService 
Caused by: java.lang.ClassNotFoundException: SpringBootLauncherService 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 

あります:これはエラートレースのですか?またはおそらくあなたはSpring BootとWinRun4Jを使って完全な例を知っていますか?

春・ブートのmaven-pluginのことで生成されたjarファイルは、以下の構造を有する:

myapp-0.0.1-SNAPSHOT.jar 
|--- org: Spring Boot Loader classes 
|--- META-INF: maven/ & MANIFEST-MF 
|--- BOOT-INF: lib/ & classes/ 

そして私は、私はこのような何か必要があると信じている:私はいずれかをいただければ幸いです

myapp-0.0.1-SNAPSHOT.jar 
|--- org: Spring Boot Loader classes 
|--- META-INF: maven/ & MANIFEST-MF 
|--- BOOT-INF: lib/ & classes/ 
|--- SpringBootLauncherService.class 

を助けて。

答えて

3

私は以下のように動作させることができました。

  • I 2つのJAR作る春の起動を強制的にbootRepackage分類器のプロパティを使用する:春ブート構造を有するもの、例えばWinRun4Jとの統合のような他の目的に使用することができる他の通常のJARを。これはかなりうまく説明されていますUse a Spring Boot application as a dependency
  • 実行可能なJARからlibを抽出し、そのフォルダをWinRun4JのINIファイルのクラスパスに追加しました。 classpath.1=the-springboot-app.jar classpath.2=./lib/*
  • まだINIファイルに、vmarg.1=-Dloader.main=the.springboot.app.Applicationを追加して、SpringBoot PropertiesLaucherを使用してSpringBootLauncherServiceクラスがローダークラスを解決できるようにしました。
  • service.classがこれを言われてservice.class=the.springboot.app.SpringBootLauncherService
+1

にINIに設定されている、私はまた 'winsw'を試してみましたが、それははるかに簡単であることが判明。これは 'java -jar my-app.jar'を使ってコマンドラインと同じ方法でSpring起動アプリケーションを起動します。私はWinRun4Jの非常に良い選択肢としてそれを見てみることをお勧めします。 http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html#deployment-windowsを参照してください。 – Philippe

+1

あなたは 'winsw'についてまさに正しいです。私のアプリの魅力のように働いた - ありがとう。 – Blake

+0

winswは素晴らしいです!ありがとうございました! – Houcheng

関連する問題