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
orresource
.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 thefile
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 searchparents This contains the behaviour of the "file" type. If true, the available 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. Defaults to "false". Since Ant 1.7 No Parameters specified as nested elements
classpath
Available
'sclasspath
attribute is a path-like structure and can also be set via a nested<classpath>
element.filepath
Available
'sfilepath
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 classorg.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 classjavax.xml.transform.Transformer
is found in the classpath referenced byjaxp
(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-fileextratasks.properties
is found.