Running Spring Batch jobs from the command line
If the first argument to the CommandLineJobRunner
is your @Configuration
FQCN instead of a resource path, the ClassPathXmlApplicationContext
constructor that's called from the CommandLineJobRunner
's start()
method will break.
int start(String jobPath, String jobIdentifier, String[] parameters, Set<String> opts) {
ConfigurableApplicationContext context = null;
try {
context = new ClassPathXmlApplicationContext(jobPath);
If you've already written a class with a main()
, that replaces the CLJR
, you shouldn't be passing CLJR
as the class name in the command line. Pass that instead.
If you are already using SpringApplication
from Spring Boot, why not finish the job and use @EnableAutoConfiguration
as well, and also the Maven plugin (see for example this guide)? That way you will get something working pretty quickly and you can always add your own features later.