Spring批量输出到绝对文件路径

Spring Batch Output to Absolute File Path

我有一个 Spring 写入 .txt 文件的批处理。它工作得很好,除了一件事。当它在调度程序 (zena) 上 运行s 时,输出文件被写到错误的位置,因为我将路径设置为相对路径。以下是我在 FlatFileItemWriter 中指定输出文件位置的方法:

FlatFileItemWriter<Something> writer = new FlatFileItemWriter<Something>();
writer.setResource(new FileSystemResource(new File("..csv/output.txt")));

当我 运行 没有 调度程序时,文件被写到正确的目录:

/BatchJob/csv/output.txt

但是当我在调度程序上 运行 时,文件被写到:

/Scheduler/Location/csv/output.txt

我尝试使用 classPathResource:

writer.setResource(new ClassPathResource("output.txt", getClass()));

但随后它会根据 class 包的名称尝试将文件写入目录位置。相反,我想将文件写入特定的目录路径位置,而不是基于包名称。

从 属性 文件中读取目录参数并注入您的资源。