我正在使用ant来启动Java程序。
程序终止后,我不想“松散”输出。所以我使用属性“output
”将输出存储在文件中。
<java classname="..." fork="true" output="....txt">
不幸的是我没有任何控制台输出了。在txt文件中将输出设置为控制台和的好方法。
我正在寻找
的替代方案ant mytast > myFile.txt
因为我不想要“用户”必须使用shell重定向“&gt; ..”。 。如果他/她没有选择重定向,则输出会丢失。
答案 0 :(得分:7)
Ant有记录输出的方法。 http://ant.apache.org/manual/Tasks/recorder.html
记录器是当前构建过程的监听器,用于记录 输出到文件。
可以同时存在多个录像机。每台录音机都是 与文件相关联。文件名用作唯一标识符 对于录音机。第一次使用未使用的调用记录器任务 filename将创建一个记录器(使用提供的参数)和 将它添加到构建的侦听器。随后的所有电话 使用此文件名的记录器任务将修改该记录器状态 (是否记录)或其他属性(如记录级别)。
看起来符合您的需求。
<compile >
<record name="log.txt" action="start"/>
<javac ...
<record name="log.txt" action="stop"/>
<compile/>
答案 1 :(得分:1)
如果程序写入一个文件描述符(例如标准输出),则可以将其重定向到一个位置(因此控制台或文件,而不是两者)。
要实现多重定向,您有两种选择:
我不建议使用第二种方法,因为它会使您的代码变得混乱,并且您通常无法完全控制所写的标准错误(考虑调用第三方函数)。
答案 2 :(得分:0)
你可以使用记录任务。我认为这符合你的需要。