首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring & WinRun4J for :在引导-INF文件夹之外的服务启动类

Spring & WinRun4J for :在引导-INF文件夹之外的服务启动类
EN

Stack Overflow用户
提问于 2016-12-02 20:26:41
回答 1查看 883关注 0票数 1

我想使用WinRun4J作为Windows运行。它不能工作,因为WinRun4J找不到主类。我注意到这是因为spring maven-plugin收集了引导-INF文件夹中的源代码,并且无法访问那里的类。这是错误跟踪:

代码语言:javascript
复制
[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)

是否有一种方法可以使用引导-INF文件夹之外的所需类生成Spring可执行jar?-您知道使用Spring和WinRun4J?的完整示例吗?

由spring maven-plugin生成的jar具有以下结构:

代码语言:javascript
复制
myapp-0.0.1-SNAPSHOT.jar
|--- org: Spring Boot Loader classes
|--- META-INF: maven/ & MANIFEST-MF
|--- BOOT-INF: lib/ & classes/

我相信我需要这样的东西:

代码语言:javascript
复制
myapp-0.0.1-SNAPSHOT.jar
|--- org: Spring Boot Loader classes
|--- META-INF: maven/ & MANIFEST-MF
|--- BOOT-INF: lib/ & classes/
|--- SpringBootLauncherService.class

我很感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2017-02-27 20:50:17

我能够使它工作如下。

  • 我使用bootRepackage分类器属性强制Spring生成2个JAR :一个具有Spring结构,另一个用于其他用途,例如与WinRun4J集成。这一点在使用Spring应用程序作为依赖项中解释得相当好
  • 我从可执行的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类能够解析加载程序类。
  • 在INI中将service.class设置为service.class=the.springboot.app.SpringBootLauncherService
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40940323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档