如何使用Apache Ant运行java代码



这是我的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"one_answers"Test2"。如果我使用Ant运行这段代码,我只有"Test1"。

我该如何解决这个问题?

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

这应该能解决问题。

System.out.flush(); 

在进入无限循环之前添加它。(编辑:),然后调用new Test()

相关内容

  • 没有找到相关文章

最新更新