首页 > 解决方案 > Spring Batch:作业终止错误:IOException 从类路径资源 c:/directory/job-definition.xml 解析 XML 文档

问题描述

我有一个打包为 jar 文件的 spring 批处理应用程序。

我可以在 windows cmd 提示符下执行下面提到的 jar

java -Xms2048m -Xmx2048m -Ddivision=25 -Ddate= -Denv=dv -Dconn=45 -jar demo-jobs*.jar job-definition.xml jobName -next

但是,上述命令在 bash shell(安装在 Windows 中)中失败,并出现以下错误

在 CMD 提示中:

在此处输入图像描述

Job Terminated in error: IOException parsing XML document from Class Path Resource c:/directory/job-definition.xml

在此处输入图像描述

POM.XML 中:

在此处输入图像描述

标签: javabashjarspring-batch

解决方案


问题在于使用的路径分隔符,在 cdm 中,解释器将此路径视为从您正在运行的驱动器的根目录开始的绝对路径。

但是,Git bash 会破坏提供的路径并对其进行翻译,将当前的 git 执行路径添加到提供的路径参数中,这就是为什么您会在提供的路径前面看到 temp 目录的原因。如果您指定以斜杠开头的命令行选项,POSIX 到 Windows 的路径转换将启动,例如将“/usr/bin/bash.exe”转换为“C:\Program Files\Git\usr\bin\bash.可执行程序”。

您可以做的是//在 bash 路径的开头添加 -//spring/batch/...


推荐阅读