Available

説明

実行時に、あるリソースが利用可能であればプロパティを設定します。 このリソースは、ファイル、ディレクトリ、クラスパス中のクラス、 JVM のシステムリソースなどです。

リソースが存在する場合、 デフォルトでプロパティの値に true が設定されます; そうでない場合、そのプロパティは設定されません。 value 属性で指定することにより、 デフォルト以外の値を設定することができます

通常このタスクは、システムパラメータに依存したターゲットの実行を避けるのに 便利なプロパティを設定するのに使われます。

パラメータ

属性 説明 必須
property 設定するプロパティ名 Yes
value プロパティに設定する値、 デフォルトは"true" No
classname クラスパス中で存在確認するクラス Yes
file 存在確認するファイル
resource JVM 中で存在確認するリソース
classpath classnameresourceを探す時に使われるクラスパス No
filepath fileを探す時に使われるファイルパス No
classpathref 他の場所で定義されたパスへの参照を与えられた時、 使用されるクラスパス No
type 探すfileの種類。 ディレクトリ(type="dir")あるいは、 ファイル(type="file")のいずれか。 設定されていない場合は、 file属性で指定された名前のリソースが、 ファイルであっても、ディレクトリであっても、 プロパティは設定されます。 No
ignoresystemclasses Ant ランタイムクラスを無視し、 指定されたクラスパスのみを使います。 "classname" 属性にのみ影響します。 デフォルトは "false" です。 No

ネストされた要素として指定されるパラメータ

classpath

availableclasspath属性は、 パス類似構造であり、 <classpath>要素をネストして設定することもできます。

filepath

availablefilepath属性は、 パス類似構造であり、 <filepath>要素をネストして設定することもできます。

  <available classname="org.whatever.Myclass" property="Myclass.present"/>

Ant のクラスパス中で、 org.whatever.Myclassクラスが見つかった場合、 Myclass.presentプロパティに "true" を設定します。

<property name="jaxp.jar" value="./lib/jaxp11/jaxp.jar"/>
<available file="${jaxp.jar}" property="jaxp.jar.present"/>

./lib/jaxp11/jaxp.jarファイルが見つかった場合、 jaxp.jar.presentプロパティに"true"を設定します。

<available file="/usr/local/lib" type="dir" property="local.lib.present"/>

/usr/local/libディレクトリが見つかった場合、 local.lib.presentプロパティの値に"true"を設定します。

...project 中で ...
<property name="jaxp.jar" value="./lib/jaxp11/jaxp.jar"/>
<path id="jaxp" location="${jaxp.jar}"/>
...target 中で ...
<available classname="javax.xml.transform.Transformer" classpathref="jaxp" property="jaxp11.present"/>

javax.xml.transform.Transformerクラスが、 jaxp (この場合、./lib/jaxp11/jaxp.jar) で参照されるクラスパス中に見つかった場合、 jaxp11.present プロパティに "true" を設定します。

<available property="have.extras" resource="extratasks.properties">
  <classpath>
    <pathelement location="/usr/local/ant/extra.jar/>
  </classpath>
</available>

リソースファイル extratasks.properties が見つかった場合、 have.extrasプロパティに"true"を設定します。


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

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