Ant:Executing 来自 ant 的 java 程序并存储返回值

Ant:Executing a java program from ant and storing the returned value

我是 Ant 新手。我基本上是在尝试从 ant 执行 java 程序。我已经设法让它工作了。但是,我不确定如何在 ant 中捕获程序返回的值,以便在 ant 文件中使用它进行进一步的操作。

build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project default="run" name="Experiment 1">
    <property name="shimura" value="Danzo!!!"/>
    <target name="run" depends="compile">
        <java classname="com.sim.expt.Demo">
            <classpath path="./staging" />
            <arg line="${shimura}"/>
        </java>
    </target>
    <target name="compile">
        <javac srcdir="./src" includeantruntime="false" destdir="./staging" />
    </target>
</project>

Java 程序:

package com.sim.expt;

public class Demo {

    public static void main(String[] args) {
        String name=args[0];
        System.out.println("Nani!!!!!!!"+name);
    }

}

使用 outputproperty 属性,详见 https://ant.apache.org/manual/Tasks/java.html

<?xml version="1.0" encoding="UTF-8"?>
<project default="run" name="Experiment 1">
    <property name="shimura" value="Danzo!!!"/>
    <target name="run" depends="compile">
        <java classname="com.sim.expt.Demo" outputproperty="myprop">
            <classpath path="./staging" />
            <arg line="${shimura}"/>
        </java>
    </target>
    <target name="compile">
        <javac srcdir="./src" includeantruntime="false" destdir="./staging" />
    </target>
</project>

然后 ${myprop} 将包含来自 stdout 和 stderr 的输出(除非单独重定向)。