Jar 使用CommandLineJobRunner运行Spring批处理错误无法找到或加载主类CommandLineJobRunner

Jar 使用CommandLineJobRunner运行Spring批处理错误无法找到或加载主类CommandLineJobRunner,jar,spring-batch,Jar,Spring Batch,我是Spring batch的新手,希望使用CommandLineJobRunner类通过命令行运行批处理,因此我将生成的jar文件和CommandLineJobRunner复制到我的桌面,并在运行以下命令后: Java-cp spring-batch-example.jar org.springframework.batch.core.launch。支持。CommandLineJobRunner类路径:/jobs/文件导入作业。xml simpleFileImportJob 这会导致此错误(无

我是Spring batch的新手,希望使用CommandLineJobRunner类通过命令行运行批处理,因此我将生成的jar文件和CommandLineJobRunner复制到我的桌面,并在运行以下命令后:

Java-cp spring-batch-example.jar org.springframework.batch.core.launch。支持。CommandLineJobRunner类路径:/jobs/文件导入作业。xml simpleFileImportJob

这会导致此错误(无法找到或加载主org.springframework.batch.core.launch.support.CommandLineJobRunner)。 我认为我应该处理类路径,我不知道怎么做


您还需要将Spring批处理JAR添加到类路径中,类似于:

java -cp spring-batch-example.jar:lib/* org.springframework.batch.core.launch.support.CommandLineJobRunner classpath:/jobs/file-import-job.xml simpleFileImportJob
其中
lib
包含Spring批处理jar及其依赖项。请注意,如果您在windows上,则需要使用“;”而不是“:”来分隔类路径项

我建议使用或类似的插件来创建一个uber jar,或者使用它,它会帮你做到这一点。在这两种情况下,您都可以使用以下工具运行作业:

java -jar spring-batch-example.jar

感谢Mahmoud的回答,我添加了spring批处理jar,但我仍然有相同的错误,我编辑了问题以放置屏幕快照Man shade插件创建一个包含所有所需依赖项的jar,因此它解决了我的问题。对于Gradle,请使用Gradle shade插件。本讨论具体展示了如何将其用于spring: