Java Batch (JSR 352) 是 SE JDK 的一部分吗? (BatchRuntime returns NULL 对于作业操作员)

Is Java Batch (JSR 352) part of the SE JDK ? (BatchRuntime returns NULL for Joboperator)

我使用 JavaSE 的 JSR352 实现编写了一个 Java 批处理应用程序。我有一个 Reader、处理器和写入器。

由于 运行 这个 java 应用程序来自 JavaSE 环境中的控制台,我在 main(String[] args) 方法中使用以下代码来启动作业。

final JobOperator jobOperator = BatchRuntime.getJobOperator();
jobOperator.start("Job.xml", null);

但是,getJobOperator() returns NULL 并得到以下错误消息

WARNING: javax.batch.runtime.BatchRuntime The ServiceLoader was unable to find an implemenation for JobOperator. Check classpath for META-INF/services/javax.batch.operations.JobOperator file.

我应该编写 JobOperator 接口的任何实现吗?

javax.batch.* API 虽然是 EE 7 平台的一部分,但设计为可在 SE 中使用(它们本身并不需要完整的 EE 平台)。但是,它们并未指定为 SE 平台的一部分,因此它们不会成为 JDK 的一部分。您需要使用 Java 批处理实现,例如 SpringBatch, or the Reference Implementation