我有一个程序在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
项目中引用的类信息org/springframework/batch/core/
。
知道如何解决?
答案 0 :(得分:0)
我非常确定您需要使用spring-boot-maven-plugin
并可能执行spring-boot:repackage
目标。你可能会把它变成一个.war
文件,因为这对我来说是一个Spring Boot
应用程序。可执行jar文件的问题Spring样式是java无法从jar文件加载jar。还有其他非弹簧解决方案,例如,Classpath including JAR within a JAR,但你应该通过弹簧文档来了解它。