5

Ant ビルドファイルからJBoss TattleTaleを実行しようとしています。通常、次のようにコマンドラインから実行します。

java -Xmx512m -jar /home/myuser/jars/tattletale.jar /home/myuser/projects/lib /home/myuser/tmp/tt

where/home/myuser/projects/srcはすべての JAR があるソース ディレクトリであり、where/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>

コマンドラインからこのターゲットを実行すると:

run-tattletale:
    [echo] Running tattle-tale...

BUILD SUCCESSFUL
Total time: 3 seconds

に行っても出力は表示されませ/home/myuser/tmp/ttんが、Ant の出力はSUCCESSエラーや警告なしで表示されます。私<arg>の は正しいように見えますか? そうでない場合は、どのように変更すればよいですか? それらが正しく見える場合、デバッグするにはどうすればよいですか? 前もって感謝します!

4

3 に答える 3

6

2つのこと:

  1. Ant の実行時にデバッグ オプションを使用してみて、出力をログ ファイルに保存します。次に、ログ ファイルを確認します。Java コマンドの実行方法が表示されます。これは、Ant<java>が、コマンド ラインから直接 Java を実行する方法とどこが違うかを理解するのに役立ちます。それはあなたの仕事を微調整する能力を与えます<java>

  2. パラメーターがjavaコマンド自体の場合は、以下を使用し、使用<jvmarg>しません<arg>

例:

<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>

それを試して、ant -d | tee ant.outUnix/Linux を使用している場合は実行してください。Windows ではant -d > ant.out.txt、出力を に保存する必要がありますが、実行ant.out.txt中は出力を表示しませんant

于 2012-10-14T19:13:15.230 に答える
3

最初の引数はプログラム引数ではなくJVM引数であるため<arg>、構文が間違っています。この場合、タスクのmaxmemoryパラメーターを使用する方が簡単です。java

したがって、最初のものを削除して、ブロック<arg>に入れます。maxmemory=512m<java>

于 2012-10-14T16:01:13.397 に答える