Spring 批处理作业参数始终显示 zsh:未找到匹配项

Spring Batch Job Param always show zsh : no matches found

我是第一次学习如何使用 spring 批处理。

我的 spring 配置文件是这样的:


    @EnableBatchProcessing
    @SpringBootApplication
    public class BatchChap4Application {


        @Autowired
        private JobBuilderFactory jobBuilderFactory;

        @Autowired
        private StepBuilderFactory stepBuilderFactory;


        @Bean
        public Job job(){
            return jobBuilderFactory.get("basicJob").start(step1()).build();
        }

        @Bean
        public Step step1(){
            return stepBuilderFactory.get("step1")
                    .tasklet((stepContribution, chunkContext) -> {
                        System.out.println("Hello World");
                        return RepeatStatus.FINISHED;
                    }).build();
        }

        public static void main(String[] args) {
            SpringApplication.run(BatchChap4Application.class, args);
        }

    }

当我 运行 从命令行用字符串值手动 jar 时,它工作得很好。


    java -jar batch.jar executionDate=2021/02/21

但是当我尝试将参数类型从字符串更改为日期时,它总是显示 zsh: no matches found: executionDate(date)=2021/02/21

    java -jar batch.jar executionDate(date)=2021/02/21

得到这样的意外输出:

    zsh: no matches found: executionDate(date)=2021/02/21**strong text**

我试图搜索错误。不幸的是没有答案。我正在使用 macOS 进行开发。

请帮忙。

您需要转义括号:

java -jar batch.jar executionDate\(date\)=2021/02/21

或者在单引号之间传递作业参数:

java -jar batch.jar 'executionDate(date)=2021/02/21'