首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Batch Job Param始终显示zsh :找不到匹配项

Spring Batch 是一个用于批处理应用程序的开源框架,它允许开发者轻松地创建健壮的批处理作业。Job Parameter 是传递给批处理作业的配置或运行时参数。

如果你在使用 Spring Batch 时遇到 zsh: 找不到匹配项 的错误,这通常意味着你在命令行中输入的参数与你的 shell(在这个情况下是 zsh)的某些自动补全或历史命令不匹配。

原因

  1. 参数错误:可能是你在命令行中输入的参数拼写错误或者格式不正确。
  2. Shell 自动补全:zsh 的自动补全功能可能会尝试补全不存在的命令或文件名。
  3. 历史命令:如果你之前输入过类似的命令,zsh 的历史命令功能可能会尝试执行旧的命令。

解决方法

  1. 检查参数拼写: 确保你输入的所有参数都是正确的,并且符合 Spring Batch 的要求。
  2. 检查参数拼写: 确保你输入的所有参数都是正确的,并且符合 Spring Batch 的要求。
  3. 使用引号: 如果参数包含空格或其他特殊字符,确保使用引号将其括起来。
  4. 使用引号: 如果参数包含空格或其他特殊字符,确保使用引号将其括起来。
  5. 禁用自动补全: 如果你不需要 zsh 的自动补全功能,可以尝试禁用它。
  6. 禁用自动补全: 如果你不需要 zsh 的自动补全功能,可以尝试禁用它。
  7. 检查历史命令: 确保你的历史命令没有干扰当前的命令执行。
  8. 检查历史命令: 确保你的历史命令没有干扰当前的命令执行。
  9. 使用绝对路径: 确保你提供的文件路径是绝对路径,而不是相对路径。
  10. 使用绝对路径: 确保你提供的文件路径是绝对路径,而不是相对路径。

示例代码

假设你有一个简单的 Spring Batch 作业,接受一个输入文件路径作为参数:

代码语言:txt
复制
@SpringBootApplication
public class MyBatchApplication {

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

    @Bean
    public Job job(JobBuilderFactory jobBuilderFactory, Step step) {
        return jobBuilderFactory.get("myJob")
                .start(step)
                .build();
    }

    @Bean
    public Step step(StepBuilderFactory stepBuilderFactory, ItemReader<String> reader, ItemWriter<String> writer) {
        return stepBuilderFactory.get("step")
                .<String, String>chunk(10)
                .reader(reader)
                .writer(writer)
                .build();
    }

    @Bean
    public ItemReader<String> reader(@Value("${input.file}") String inputFile) {
        return new FlatFileItemReaderBuilder<String>()
                .name("fileReader")
                .resource(new ClassPathResource(inputFile))
                .lineMapper(new PassThroughLineMapper())
                .build();
    }

    @Bean
    public ItemWriter<String> writer() {
        return items -> items.forEach(System.out::println);
    }
}

application.properties 中配置输入文件路径:

代码语言:txt
复制
input.file=inputfile.txt

参考链接

通过以上步骤,你应该能够解决 zsh: 找不到匹配项 的问题,并成功运行你的 Spring Batch 作业。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CTO 说了,不懂 @Autowired 和 @Resource 区别的人可以领盒饭了

Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job...这段是Spring工作组的建议,大致翻译一下: 属性字段注入的方式不推荐,检查到的问题是:Spring团队建议:"始终在bean中使用基于构造函数的依赖注入,始终对强制性依赖使用断言" 原因大家知道了吧...当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。...@Resource装配顺序: ①如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常。...②如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常。 ③如果指定了type,则从上下文中找到类似匹配的唯一bean进行装配,找不到或是找到多个,都会抛出异常。

41130

spring batch数据库表数据结构

为了强化对spring batch关键概念的理解,故有了如下的对spring batch元数据结构的记录描述 概观 Spring Batch 的数据表结构与在Java中的Domain对象非常匹配。...由于各个数据库供应商处理数据类型的方式不同,Spring Batch提供了许多架构作为示例,所有这些架构都有不同的数据类型。下图显示了所有6个表格的ERD模型及其相互间的关系: 图1....示例DDL脚本 Spring Batch Core JAR文件包含用于为多个数据库平台创建关系表的示例脚本(这些脚本又由作业存储库工厂bean或名称空间等效自动检测到)。...以下清单显示了该BATCH_JOB_EXECUTION 表的定义: 以下列表描述了每列: JOB_EXECUTION_ID:唯一标识此执行的主键。...以下清单显示了该BATCH_JOB_EXECUTION_CONTEXT表的定义: 以下列表描述了每列: JOB_EXECUTION_ID:表示JobExecution上下文所属的外键。

4.5K80
  • 那你知道Spring Batch吗?

    from=pc] Spring Batch框架 一个Batch(批处理)过程由一个Job(作业)组成。这个实体封装了整个批处理过程。 一个Job(作业)可以由一个或多个Step(步骤)组成。...让我们使用Spring Initializr来生成Maven项目。确保选择Batch作为依赖。 [06ab554d313042be8d4991339d37666e?...生成的项目包含Spring Boo Starters管理着不同的Spring依赖spring-boot-starter-batch导入Spring Boot和Spring Batch依赖。...配置 Spring Batch Job 我们首先创建一个BatchConfig类,它将配置Spring Batch。...这是使用names()来完成的,通过将名称与对象上的setter匹配,可以使Spring Batch映射字段。 在本文的例子中,一行的第一个字段将使用firstName setter进行映射。

    1.9K00

    你用过 Spring Batch 吗?

    Spring Batch框架 一个Batch(批处理)过程由一个Job(作业)组成。这个实体封装了整个批处理过程。 一个Job(作业)可以由一个或多个Step(步骤)组成。...让我们使用Spring Initializr来生成Maven项目。确保选择Batch作为依赖。 ? image 单击Generate Project生成并下载Spring Boot项目模板。...生成的项目包含Spring Boo Starters管理着不同的Spring依赖spring-boot-starter-batch导入Spring Boot和Spring Batch依赖。...配置 Spring Batch Job 我们首先创建一个BatchConfig类,它将配置Spring Batch。...这是使用names()来完成的,通过将名称与对象上的setter匹配,可以使Spring Batch映射字段。 在本文的例子中,一行的第一个字段将使用firstName setter进行映射。

    2.2K10

    Spring Batch 教程简单教程

    在这篇文章中,我们将更仔细地研究 Spring Batch。 什么是Spring BatchSpring Batch 是一个旨在促进批处理的轻量级框架。它允许开发人员创建批处理应用程序。...接下来,我们将了解 Spring Batch 框架及其组成。 Spring Batch Framework 以下架构显示Spring Batch 框架的组件。 首先,批处理涉及一个作业。...Spring Batch 框架还包括 日志和追踪 交易管理 job处理统计 job重启 资源管理 通常,当您配置作业时,它会保存在作业存储库中。Job Repository 保存所有作业的元数据信息。...因此,首先,创建 spring 项目并添加以下依赖: implementation 'org.springframework.boot:spring-boot-starter-batch' 这是我们项目的主要依赖...此属性将在您的数据库中创建其他数据库表batch_job_execution,如batch_job_execution_context、batch_job_execution_params、batch_job_instance

    78720

    Spring Batch快速入门

    Spring Batch简介 Spring Batch简单来说就是一个轻量级的批处理框架,从名字就可以知道它是Spring 的子项目。...下图显示了所有6张表的ERD模型及其相互关系(摘自官网): ?...- JOB ID由batch_job_seq分配 -- JOB 名称,与spring配置一致 -- JOB KEY 对job参数的MD5编码,正因为有这个字段的存在,同一个job如果第一次运行成功,第二次再运行会抛出...---- 创建项目 数据库准备完毕后,接下来我们就是创建Spring Boot项目: ? 填写项目名、包名等信息: ? 勾选如下红框标注的依赖: ? 点击Finish完成项目的创建: ?...通常运行Job的方式有两种,一种是我们把Job对象注入到Spring容器里,Spring Batch默认在项目启动完成后就会运行容器里配置好的Job,如果配置了多个Job也可以通过配置文件去指定。

    1.9K20

    分布式任务调度平台XXL-JOB,不了解一下?

    ,在当当开源的Elastic Job基础上,取代传统的Linux Cron/Spring Batch Job的方式,做到全域统一配置,统一监控,任务高可用以及分片并发处理; light-task-scheduler...管理执行器,推荐这种方式; :xxl-job-executor-sample-springSpring版本,通过Spring容器管理执行器,比较通用; :xxl-job-executor-sample-frameless...= 在第一次启动的项目的时候可能会遇到找不到 log 文件的错误(Failed to create),我们只需要自己手动创建一下就好了,具体可以参照这篇文章:https://blog.csdn.net/...等我们把执行器配置里的 xxl,job.admin.addresses 填写上「调度中心」实际的地址,然后 token 保持与「调度中心」一致,启动执行器时,执行器就会把自身的一些基础信息发送给「调度中心...」,这时候「调度中心」会把接收到的注册信息与自身注册列表里的 AppName 进行对比(AppName 是每一个执行器的唯一标示),有匹配时就会把 ip 自动填写上(多个节点就写多个地址),并在 xxl_job_registry

    1.2K40

    为什么 Spring和IDEA 都不推荐使用 @Autowired 注解

    译为: Spring 团队建议: 始终在您的 bean 中使用基于构造函数的依赖注入。始终对强制依赖使用断言 原因 为什么 Spring 建议我们在Bean中使用构造注入呢?...@Resource装配顺序: ①如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常。...②如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常。...③如果指定了type,则从上下文中找到类似匹配的唯一bean进行装配,找不到或是找到多个,都会抛出异常。...④如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配。

    1.6K51

    分布式任务调度平台XXL-JOB

    ,在当当开源的Elastic Job基础上,取代传统的Linux Cron/Spring Batch Job的方式,做到全域统一配置,统一监控,任务高可用以及分片并发处理; light-task-scheduler...管理执行器,推荐这种方式; :xxl-job-executor-sample-springSpring版本,通过Spring容器管理执行器,比较通用; :xxl-job-executor-sample-frameless...= 在第一次启动的项目的时候可能会遇到找不到 log 文件的错误(Failed to create),我们只需要自己手动创建一下就好了,具体可以参照这篇文章:https://blog.csdn.net/...等我们把执行器配置里的 xxl,job.admin.addresses 填写上「调度中心」实际的地址,然后 token 保持与「调度中心」一致,启动执行器时,执行器就会把自身的一些基础信息发送给「调度中心...」,这时候「调度中心」会把接收到的注册信息与自身注册列表里的 AppName 进行对比(AppName 是每一个执行器的唯一标示),有匹配时就会把 ip 自动填写上(多个节点就写多个地址),并在 xxl_job_registry

    2.2K10

    如何在Ubuntu 14.04第2部分上查询Prometheus

    同样,元素由其标签集匹配,并且过滤器运算符应用于匹配元素之间。只有左侧的元素与右侧的元素匹配且通过滤波器的元素才成为输出的一部分。...如果找到匹配,则左侧系列成为输出的一部分。如果右侧不存在匹配的系列,则从输出中省略该系列。...()功能之前,始终在任何聚合中保留存储桶标签。...因此,我们可以轻松查询当前“向上”或“向下”的实例: up{job="demo"} 现在应该将一个实例显示为down: 要仅显示向下的实例,您可以过滤值0: up{job="demo"} == 0 您现在应该只看到您终止的实例...: 或者,要获取关闭实例的总数: count by(job) (up{job="demo"} == 0) 这将显示1: 这些类型的查询对于基本的刮擦健康警报很有用。

    2.8K00

    Shell 字符串操作符实例

    字符串操作符 image.png 实例脚本 可以使用 sh -v testString.sh 命令来执行如下脚本,查看原始命令及输出内容,为了方便区分命令和内容,其中输出内容以深蓝色显示。...从左边开始,删除最长匹配字符串:${url%%/*}\033[0m" 72 73## 匹配替换 74echo ${ee} "\033[36m从右边开始,替换第一次出现匹配:${url/\//#}\033...[0m" 75echo ${ee} "\033[36m替换所有匹配:${url//\//#}\033[0m" 76 77echo ${ee} "\033[36m替换开头匹配字符串:${url/#https...=daodaotest 81# macOS zsh 不支持 82echo ${ee} "\033[36m开头第一个小写字母转换为大写:${param^}\033[0m" 83echo ${ee} "\033...[36m所有小写字母转换为大写:${param^^}\033[0m" 84 85param=DAODAOTEST 86# macOS zsh 不支持 87echo ${ee} "\033[36m开头第一个大写字母转换为小写

    78210

    只因多看了一眼提示,又一次刷新了@Autowired注释的认知

    翻译过来就是:字段注入是不推荐的,Spring团队建议:“始终在bean中使用基于构造函数的依赖注入。始终对强制性依赖使用断言”。...Spring注入的方式及场景 Spring常见的DI方式:构造器注入、Setter注入、字段注入。显然,我们经常使用的方式并不是官方最推荐的。...默认情况下@Autowired是以类型(ByType)进行匹配的,@Resource是以名字(ByName)进行匹配的。...@Resource装配场景: 1、如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常; 2、如果指定了name,则根据名称进行装配,找不到则抛出异常...; 3、如果指定了type,则根据类型进行装配,找不到或者找到多个,都会抛出异常; 4、没有任何指定(默认情况),则采用byName方式进行装配,如果没有匹配到,则回退为一个原始类型进行匹配; 小结 处于对代码的洁癖

    87720
    领券