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.
Attribute | Description | Required |
---|---|---|
property | The name of the property to set. | Yes |
value | The value to set the property to. | No; defaults to true |
classname | The class to look for in the classpath. | Exactly one of the three |
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. | No; defaults to false |
searchparents | This contains the behaviour of the filetype. If true, the task will, when searching for a file, search not only the directories specified but will also search the parent directories of those specified. If false, only the directories specified will be searched. Since Ant 1.7 |
No; defaults to false |
Available
's classpath
attribute is
a path-like structure and can also be set via a nested
<classpath>
element.
Available
's filepath
attribute is
a path-like structure and can also be set via a
nested <filepath>
element.
<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.