java - 将退出代码从 ant 返回到批处理文件

标签 java ant batch-file exit-code

我的 .bat 文件中有几个 ant 任务要执行。
我的 .bat 文件如下所示:

call ant -buildfile task.xml target1
call ant -buildfile task.xml target2

对于每个 ant 任务,它都会执行一个 java 程序,该程序将使用 System.exit() 返回一个退出代码。

我知道可以通过在 ant 配置中使用 resultproperty 来接收退出代码。
如何通过调用 ant 任务获取 .bat 文件中的退出代码?

最佳答案

你可以尝试这样的事情:

1) 在您的 ant task.xml 中:如果 resultproperty 不为 0,则使其失败。为此,您可以使用 fail task

  • resultProperty不为0的条件
  • 状态代码等于从您的 java 程序返回的状态代码

示例代码如下:

<exec executable="cmd" resultproperty="javaReturnCode" ...>
    ...
</exec>

<fail message="java program execution failure" status="${javaReturnCode}">
   <condition>
      <not>
        <equals arg1="${javaReturnCode}" arg2="0"/>
      </not>
   </condition>
</fail>

2) 在你的批处理文件中:%errorlevel% 包含最后一个命令的返回代码,所以像这样的东西可以工作:

call ant -buildfile task.xml target1
IF NOT ERRORLEVEL 0 GOTO javaProgramErrorHandlingTarget1
call ant -buildfile task.xml target2
IF NOT ERRORLEVEL 0 GOTO javaProgramErrorHandlingTarget2
REM both ant targets exit normally so continue normal job
...
:javaProgramErrorHandlingTarget1
...
:javaProgramErrorHandlingTarget2
...

关于java - 将退出代码从 ant 返回到批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084772/

相关文章:

java - OkHttpClient 拦截器未设置

java - Tomcat 连接池配置 : DataSource type and "Too many connection" error

java - 从 ant 构建文件中以编程方式检索某些任务

java - schemagen Ant任务无法使用gradle正常工作

ant - 如果没有所需名称的属性,ANT 是否应用 prefixValues ?或者这是一个错误? (SSCCE 提供)

java - mockito 是否具有与 jMock 的状态等效的成语?

Java AWT : Setting background of Canvas changes the background for the whole frame

java - 如何运行Web服务器上的Jar

sql - 如何从命令结果中获取 for/f 循环中的错误级别?

powershell - 使用变量从批处理文件调用powershell替换