Linux上的Spring Batch CommandLineJobRunner

时间:2015-09-24 18:09:18

标签: spring-batch

我正在尝试在Linux上使用SpringBatch-CommandLineJobRunner运行我的工作,我在classpath中有以下jar。     任何人都可以看看,看看如果我错过了任何罐子,并告诉我丢失的罐子。在我们的项目中,他们不想使用任何工具,如Maven或STS,我们只是使用eclipse,我们的工作从eclipse运行良好。在Linux上我们得到以下错误..我们使用下面的命令

java -cp org.springframework.batch.core.launch.support.CommandLineJobRunner springbatch / config / applicationBatchContextPlan.xml crossRefAllPlansJob

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/batch/core/launch/support/CommandLineJobRunner
Jars in Classpath on linux :
springbatch/lib/aopalliance-1.0.jar
springbatch/lib/commons-collections-3.2.1.jar
springbatch/lib/commons-lang3-3.3.2.jar
springbatch/lib/commons-lang3-3.3.2-javadoc.jar
springbatch/lib/commons-logging-1.2.jar
springbatch/lib/javax.batch-api-1.0.jar
springbatch/lib/log4j-1.2.17.jar
springbatch/lib/ojdbc6.jar
springbatch/lib/spring-aop-4.1.7.RELEASE.jar
springbatch/lib/spring-aspects-4.1.7.RELEASE.jar
springbatch/lib/spring-batch-core-3.0.4.RELEASE.jar
springbatch/lib/spring-batch-infrastructure-3.0.4.RELEASE.jar
springbatch/lib/spring-beans-4.1.7.RELEASE.jar
springbatch/lib/spring-context-4.1.7.RELEASE.jar
springbatch/lib/spring-core-4.1.7.RELEASE.jar
springbatch/lib/spring-expression-4.1.7.RELEASE.jar
springbatch/lib/spring-jdbc-4.1.7.RELEASE.jar
springbatch/lib/spring-retry-1.1.2.RELEASE.jar
springbatch/lib/spring-tx-4.1.7.RELEASE.jar

另外,我想知道是否还有其他方法可以在不使用CommandLineJobRunner的情况下在linux上运行spring批处理作业。

2 个答案:

答案 0 :(得分:1)

根据此post和此post,您需要手动包含类路径中的所有jar。

基本上是这样的:

java -cp ... org.springframework.batch.core.launch.support.CommandLineJobRunner springbatch/config/applicationBatchContextPlan.xml crossRefAllPlansJob

第一篇文章有​​一个方便的shell脚本来帮助解决这个问题。

就其他部署选项而言,您可以在可以部署spring的任何位置部署spring批处理应用程序(例如,servlet容器)。一般来说,如果它是应用程序中的主要内容,一个普通的旧jar可能是最简单的选择。

答案 1 :(得分:0)

问题已经解决了几天。类路径中的罐子没有得到正确的拾取。经过几次重试,它完成了并且它按预期工作了

感谢大家的帮助。

由于 拉克希米