## 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
filepath | The path to use when looking up `file`. | 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
ignoresystemclasses | Ignore Ant's runtime classes, using only the specified classpath. Only affects the "classname" attribute. Defaults to "false" | 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.

#### filepath

`Available`'s `filepath` attribute is a path-like structure and can also be set via a nested `<filepath>` 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-2002,2004-2005 The Apache Software Foundation. All rights Reserved.