我试图在Ant脚本中运行.bat文件,如下所示:
<property name="winPath" value="C:\jboss-root\jboss-fuse-6.1.0.redhat-379\bin"/>
<property name="cmdPath" value="C:\Windows\System32\cmd.exe" />
<echo message="Windows: ${winPath} | ${cmdPath}" />
<exec dir="${winPath}" executable="${cmdPath}">
<arg value="/c"/><arg value="fuse.bat"/><arg value="-p"/>
</exec>
此脚本的输出如下:
[echo] Executing JBoss Fuse Start Script...
[echo] Windows: C:\jboss-root\jboss-fuse-6.1.0.redhat-379\bin | C:\Windows\System32\cmd.exe
[exec] The system cannot find the path specified.
[exec] Result: 3
该文件确实存在,并且通过在cmd中手动运行该命令,它可以很好地执行脚本。
C:\jboss-root\jboss-fuse-6.1.0.redhat-379\bin>C:\Windows\System32\cmd.exe /c fuse.bat -p
Please wait while JBoss Fuse is loading...
我已经尝试将\替换为/,但没有改变。 Ant文档说要么将文件路径放在PATH中,要么使用绝对文件路径。但是,我无法修改PATH文件。
答案 0 :(得分:2)
这是因为Ant没有正确的JAVA_HOME,并且为fuse.bat提供了一个无效的位置 - 日志中的错误实际上是fuse.bat报告它无法找到java .EXE。