部署 Eclipse - 执行文件 .jar 时出错 - Spring 批处理

Deploy Eclipse - Error Executing file .jar - Spring Batch

我有一个程序 运行在 ECLIPSE 中成功运行。但是当生成 .jar 文件并尝试 运行 它会产生错误。

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/batch/core/JobExecutionException 
            at java.lang.Class.getDeclaredMethods0(Native Method)
            at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
            at java.lang.Class.privateGetMethodRecursive(Unknown Source)
            at java.lang.Class.getMethod0(Unknown Source)
            at java.lang.Class.getMethod(Unknown Source)
            at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
            at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: org.springframework.batch.core.JobExecutionException
            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)
            ... 7 more

项目中引用了class信息org/springframework/batch/core/

知道如何解决吗?

我很确定您需要使用 spring-boot-maven-plugin 并可能执行 spring-boot:repackage 目标。您可能会做得很好,只需将其设为 .war 文件,因为这对我的 Spring Boot 应用程序有效。可执行 jar 文件 Spring 样式的问题是 java 无法从 jar 文件加载 jar。还有其他非 spring 解决方案,例如,参见 Classpath including JAR within a JAR,但您应该查看 spring 文档来弄清楚。

参考:Packaging executable jar and war files