## Available

### Description

Sets a property if a resource is available at runtime. This resource can be a file, a directory, a class in the classpath, or a JVM system resource.

If the resource is present, the property value is set to true by default; otherwise, the property is not set. You can set the value to something other than the default by specifying the `value` attribute.

Normally, this task is used to set properties that are useful to avoid target execution depending on system parameters.

### Parameters

Attribute | Description | Required
property | The name of the property to set. | Yes
value | The value to set the property to. Defaults to "true". | No
classname | The class to look for in the classpath. | Yes
file | The file to look for.
resource | The resource to look for in the JVM.
classpath | The classpath to use when looking up `classname` or `resource`. | No
classpathref | The classpath to use, given as a reference to a path defined elsewhere. | No
type | The type of `file` to look for, either a directory (`type="dir"`) or a file (`type="file"`). If not set, the property will be set if the name specified in the `file` attribute exists as either a file or a directory. | No

### Parameters specified as nested elements

#### classpath

`Available`'s `classpath` attribute is a path-like structure and can also be set via a nested `<classpath>` element.

### Examples

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

sets the `Myclass.present` property to the value "true" if the class `org.whatever.Myclass` is found in Ant's classpath.

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

sets the `jaxp.jar.present` property to the value "true" if the file `./lib/jaxp11/jaxp.jar` is found.

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

sets the `local.lib.present` property to the value "true" if the directory `/usr/local/lib` is found.

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

sets the `jaxp11.present` property to the value "true" if the class `javax.xml.transform.Transformer` is found in the classpath referenced by `jaxp` (in this case, `./lib/jaxp11/jaxp.jar`).

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

sets the `have.extras` property to the value "true" if the resource-file `extratasks.properties` is found.

Copyright © 2000,2001 Apache Software Foundation. All rights Reserved.