如何使用Apache Ant运行Java代码

时间:2011-09-23 19:01:24

标签: java ant

以下是 build.xml 的一部分:

<target name="run">
    <java jar="${jar.dir}/${Main.class}.jar" 
        fork="yes"
        <assertions>
            <enable />
        </assertions>
    </java>
</target>

<target name="run">
    <java classname="${Main.class}" classpath="${classes.dir};${lib.dir}" fork="yes"/>
</target>

以下是 java代码

的示例
public class Test {
    public Test() {
        System.out.print("Test2");
    }
    public static void main(String[] args) {
        System.out.println("Test1");
        new Test();
        while(true) {}
    }
}

如果我从命令行运行此代码,我有“Test1”,然后是“Test2”。 如果我使用Ant运行此代码,我只有“Test1”。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

您可能会发现Ant在打印到stdout之前将输出缓冲到程序的System.out,并且因为您的程序永远不会终止(while (true) {}),Ant正在等待程序在冲洗线的输出之前完成。尝试更改Test构造函数以使用println,您将看到输出。

答案 1 :(得分:1)

这应该可以解决问题。

System.out.flush(); 

在进入无限循环之前添加它。 (编辑:)和你打电话给新的测试()