Executes a Java class within the running (Ant) VM or forks another VM if specified.


If odd things go wrong when you run this task, set fork="true" to use a new JVM.

このタスクを実行したときに、一部が失敗する場合は、 新しいJVMを使うためにfork="true"を設定してください。



Attribute Description Required
classname the Java class to execute. Either jar or classname
jar the location of the jar file to execute (must have a Main-Class entry in the manifest). Fork must be set to true if this option is selected. Either jar or classname
args the arguments for the class that is executed. deprecated, use nested <arg> elements instead. No
classpath the classpath to use. No
classpathref the classpath to use, given as reference to a PATH defined elsewhere. No
fork if enabled triggers the class execution in another VM (disabled by default) No
jvm the command used to invoke the Java Virtual Machine, default is 'java'. The command is resolved by java.lang.Runtime.exec(). Ignored if fork is disabled. No
jvmargs the arguments to pass to the forked VM (ignored if fork is disabled). deprecated, use nested <jvmarg> elements instead. No
maxmemory Max amount of memory to allocate to the forked VM (ignored if fork is disabled) No
failonerror Stop the buildprocess if the command exits with a returncode other than 0. Default is "false" No
dir The directory to invoke the VM in. (ignored if fork is disabled) No
output Name of a file to write the output to. No
append whether output should be appended to or overwrite an existing file. Defaults to false. No
newenvironment Do not propagate old environment when new environment variables are specified. Default is "false" (ignored if fork is disabled). No
timeout Stop the command if it doesn't finish within the specified time (given in milliseconds). It is highly recommended to use this feature only if fork is enabled. No
Attribute Description Required
classname 実行するJavaのクラス jarかクラス名のどちらか
jar 実行するjarファイルの場所(マニフェストにメインクラスのエントリーが必要)。 このオプションが選択されたときは、forkがtrueでなければなりません。 jarかクラス名のどちらか
args 実行するクラスに与える引数。 推奨されません。代わりにネストした<arg>要素を使用してください。 No
classpath 使用するクラスパス。 No
classpathref 使用するクラスパスを、任意の場所で定義した パスに対する参照として指定します。 No
fork 有効にした場合には、クラスの実行を別のVMで行います (デフォルトは無効です)。 No
jvm Javaバーチャルマシンを起動するコマンドで、デフォルトは'java'です。 このコマンドは、java.lang.Runtime.exec()で実行されます。 forkが無効な場合は無視されます。 No
jvmargs フォークされるVMに渡す引数(forkが無効な場合は無視されます)。 推奨されません。代わりにネストした <jvmarg>要素を使用してください。 No
maxmemory フォークされるVMに割り当てるメモリの最大量 (forkが無効な場合は無視されます)。 No
failonerror コマンドが0以外のリターンコードで終了した場合には、ビルドプロセスを停止します。 デフォルトは"false"です。 No
dir VMを起動するディレクトリ (forkが無効な場合には、無視されます)。 No
output 出力を書き込むファイルの名前 No
append 既存ファイルへの出力を追加書き込みにするか、上書きにするか。 デフォルトはfalse。 No
newenvironment 新しい環境の変数が指定されたときに、 古い環境を引き継がないようにする。 デフォルトは"false" (forkが無効な場合は無視されます)。 No
timeout 指定した時間が経過してコマンドが終了しないときに コマンドを停止します(ミリ秒で指定します)。 forkが有効な場合は、使用を強く推奨します。 No

Parameters specified as nested elements


arg and jvmarg

Use nested <arg> and <jvmarg> elements to specify arguments for the Java class and the forked VM respectively. See Command line arguments.

JavaクラスやフォークしたVMに引数を指定するために、 ネストした<arg><jvmarg>要素を使用します。 コマンドライン引数を参照してください。


Use nested <sysproperty> elements to specify system properties required by the class. These properties will be made available to the VM during the execution of the class (either ANT's VM or the forked VM). The attributes for this element are the same as for environment variables.

クラスに必要なシステムプロパティを指定するために、 ネストした<sysproperty>要素を使用します。 これらのプロパティーは、クラスを実行しているVM(ANTを実行しているVMか、フォークしたVMのどちらか) に対して有効になります。 この要素に対する属性は環境変数と同じです。


Java's classpath attribute is a PATH like structure and can also be set via a nested classpath element.

Javaclasspath属性は パス類似構造 であり、ネストしたclasspath要素でも設定できます。


It is possible to specify environment variables to pass to the forked VM via nested env elements. See the description in the section about exec

Settings will be ignored if fork is disabled.

env要素によって、 フォークするVMへ渡す環境変数を指定することが可能です。 execの章の説明を見てください



       <java classname="test.Main" >
         <arg value="-h"/> 
           <pathelement location="dist/test.jar"/>
           <pathelement path="${java.class.path}"/>
Run a class in this JVM with a new jar on the classpath

クラスパス上の新しいjarを使って、 このJVMの中でクラスを実行します。
        <java jar="dist/test.jar" 
         <arg value="-h"/> 
           <pathelement location="dist/test.jar"/>
           <pathelement path="${java.class.path}"/>
Run the jar using the manifest supplied entry point, forking (as required), and with a maximum memory of 128MB. Any non zero return code breaks the build.

マニフェストに書かれたエントリーポイントを使って、jarを実行します。 フォーク(必須)しており、また128MBの最大メモリーを指定しています。 0以外のリターンコードでビルドを中断します。
  <java classname="test.Main"/>
  <java classname="test.Main"
        fork="yes" >
    <sysproperty key="DEBUG" value="true"/> 
    <arg value="-h"/> 
    <jvmarg value="-Xrunhprof:cpu=samples,file=log.txt,depth=3"/> 
Note: you can not specify the (highly deprecated) MSJVM, "jview.exe" as the JVM, as it takes different parameters for other JVMs, That JVM can be started from <exec> if required.

Note: (強く推奨されない)MSJVMを、JVMのように"jview.exe"として 指定することはできません。 他のJVMと異なるパラメータをとるからです。 必要であれば、JVMを<exec>で開始することができます。

Copyright © 2000-2002 Apache Software Foundation. All rights Reserved.

[訳注:これは西野 亨、宮本信二が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]