Java 什么';这些Ant/JVM参数有什么问题?
我正在尝试从Ant构建文件运行。通常我从命令行运行它,如下所示:Java 什么';这些Ant/JVM参数有什么问题?,java,ant,jvm-arguments,Java,Ant,Jvm Arguments,我正在尝试从Ant构建文件运行。通常我从命令行运行它,如下所示: java -Xmx512m -jar /home/myuser/jars/tattletale.jar /home/myuser/projects/lib /home/myuser/tmp/tt 其中/home/myuser/projects/src是我所有JAR所在的源目录,而/home/myuser/tmp/tt是我放置所有TattleTale报告的输出目录 在Ant构建文件中,我使用了以下内容: <echo mess
java -Xmx512m -jar /home/myuser/jars/tattletale.jar /home/myuser/projects/lib /home/myuser/tmp/tt
其中/home/myuser/projects/src
是我所有JAR所在的源目录,而/home/myuser/tmp/tt
是我放置所有TattleTale报告的输出目录
在Ant构建文件中,我使用了以下内容:
<echo message="Running tattle-tale..."/>
<java fork="true" failonerror="true" jar="/home/myuser/jars/tattletale.jar">
<arg value="Xmx512m"/>
<arg value="/home/myuser/projects/lib"/>
<arg value="/home/myuser/tmp/tt"/>
</java>
当我转到
/home/myuser/tmp/tt
时,我看不到任何输出,但是Ant输出显示成功
,没有错误或警告。我的
看起来正确吗?如果不正确,我应该如何更改它们?如果它们看起来确实正确,我可以做什么来调试?提前谢谢 第一个参数是JVM参数而不是程序参数,因此
语法错误。对于这种情况,更容易使用java
任务的maxmemory
参数
因此,删除第一个
并将maxmemory=512m
放入
块。两件事:
与直接从命令行运行Java的不同之处。它将使您能够tweek您的
任务java
命令本身时,使用
而不是
:<echo message="Running tattle-tale..."/>
<java fork="true"
failonerror="true"
jar="/home/myuser/jars/tattletale.jar">
<jvmarg value="-Xmx512m"/> <!-- Note the dash! -->
<arg value="/home/myuser/projects/lib"/>
<arg value="/home/myuser/tmp/tt"/>
</java>
如果您使用的是Unix/Linux,请尝试使用
ant-d | tee ant.out
。在Windows上,您必须执行ant-d>ant.out.txt
,这将在ant.out.txt
中保存输出,但在运行ant
时不会显示输出。如果在目标目录中没有看到输出,可能是因为1)给定的输入目录中没有存档,或者2)tattletale进程失败。
在失败或异常的情况下,tattletale进程似乎返回退出代码0
,它使ant相信进程执行成功
对于调试,我建议您
确保给定的目录正确且具有java存档(jar)文件,并分析由tattletale
产生的标准输出/错误
例如:
<echo message="Running tattle-tale..."/>
<java fork="true"
failonerror="false"
errorproperty="errorproperty"
outputproperty="outputproperty"
jar="/home/myuser/jars/tattletale.jar">
<jvmarg value="-Xmx512m"/> <!-- Note the dash! -->
<arg value="/home/myuser/projects/lib"/>
<arg value="/home/myuser/tmp/tt"/>
</java>
<echo message="stdout>> ${outputproperty}"/>
<echo message="stderr>> ${errorproperty}" />
注意:-failonerror
暂时为false,仅用于调试目的。谢谢@Mike Q(+1)-但我仍然没有看到在输出目录中生成任何内容。
<echo message="Running tattle-tale..."/>
<java fork="true"
failonerror="false"
errorproperty="errorproperty"
outputproperty="outputproperty"
jar="/home/myuser/jars/tattletale.jar">
<jvmarg value="-Xmx512m"/> <!-- Note the dash! -->
<arg value="/home/myuser/projects/lib"/>
<arg value="/home/myuser/tmp/tt"/>
</java>
<echo message="stdout>> ${outputproperty}"/>
<echo message="stderr>> ${errorproperty}" />