WinRun4Jを使用して、Spring Boot アプリケーションを Windows サービスとして実行したいと考えています。WinRun4J がメイン クラスを見つけることができないため、機能しません。spring-boot-maven-plugin が 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)
BOOT-INF フォルダー外の目的のクラスで Spring Boot 実行可能 jar を生成する方法はありますか? それとも、Spring Boot と WinRun4J を使用した完全な例を知っていますか?
spring-boot-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
助けていただければ幸いです。