首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这些Ant/JVM参数有什么问题?

这些Ant/JVM参数有什么问题?
EN

Stack Overflow用户
提问于 2012-10-14 23:52:55
回答 3查看 4.7K关注 0票数 5

我正在尝试从Ant构建文件运行JBoss TattleTale。通常我从命令行运行它,如下所示:

代码语言:javascript
复制
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构建文件中,我使用了以下内容:

代码语言:javascript
复制
<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>

当我从命令行运行这个目标时:

代码语言:javascript
复制
run-tattletale:
    [echo] Running tattle-tale...

BUILD SUCCESSFUL
Total time: 3 seconds

当我转到/home/myuser/tmp/tt时,我看不到任何输出,但是Ant的输出显示SUCCESS,没有错误或警告。我的<arg>看起来是否正确,如果不正确,我应该如何更改它们?如果它们确实看起来是正确的,我可以做些什么来调试?提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2012-10-15 03:13:15

两件事:

  1. 在运行Ant时尝试使用debug选项,并将输出保存到日志文件中。然后查看日志文件。它将显示它是如何执行Java命令的。这将帮助您找出Ant与直接从命令行运行<java>的不同之处。它将使您能够调整您的<java>任务。
  2. 当参数用于java命令本身时,您可以使用<jvmarg>而不是tweek

举个例子:

代码语言:javascript
复制
<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运行时不会显示输出。

票数 6
EN

Stack Overflow用户

发布于 2012-10-15 00:01:13

第一个参数是一个JVM参数,而不是程序参数,所以<arg>是错误的语法。对于这种情况,使用java任务的maxmemory参数更容易。

因此,删除第一个<arg>并将maxmemory=512m放入<java>块中。

票数 3
EN

Stack Overflow用户

发布于 2016-12-23 04:18:19

如果您在目标目录中看不到输出,可能是由于1)给定的输入目录中没有存档,或者2) tattletale进程失败。在失败或异常的情况下,tattletale进程似乎返回退出代码0,并使ant相信进程执行成功。

对于调试,我建议您确保给定的目录是正确的,并且有java归档(jar)文件,并分析tattletale产生的标准输出/错误。

示例:

代码语言:javascript
复制
<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,仅用于调试目的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12883877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档