如果資源在執行時可用,則設定屬性。此資源可以是檔案、目錄、類別路徑中的類別或 JVM 系統資源。
注意:類別在類別路徑中可用時,表示可以載入;亦即,它所依賴的所有類別也必須在類別路徑中。
如果資源存在,則預設將屬性值設定為 true
;否則,不會設定屬性。您可以透過指定 value 屬性來將值設定為預設值以外的值。
通常,此工作用於設定屬性,以避免目標執行依賴於系統參數。
屬性 | 說明 | 必要 |
---|---|---|
property | 要設定的屬性名稱。 | 是 |
value | 要將屬性設定為的值。 | 否;預設為 true |
classname | 要在類別路徑中尋找的類別。 | 三個屬性中必須有一個 |
file | 要尋找的檔案。 | |
resource | 要在 JVM 中尋找的資源。 | |
classpath | 在尋找 classname 或 resource 時要使用的類別路徑。 | 否 |
filepath | 在尋找 file 時要使用的路徑。 | 否 |
classpathref | 要使用的類別路徑,以 參考 形式提供,指向其他地方定義的路徑。 | 否 |
type | 要尋找的 file 類型,可以是目錄 (type=dir) 或檔案 (type= file)。如果未設定,則當 file 屬性中指定的檔案或目錄存在時,屬性會被設定。 |
否 |
ignoresystemclasses | 忽略 Ant 的執行時期類別,只使用指定的類別路徑。只會影響 classname 屬性。 | 否;預設為 false |
searchparents | 包含 filetype 的行為。如果為 true,則工作在搜尋檔案時,不僅會搜尋指定的目錄,還會搜尋這些目錄的父目錄。如果為 false,則只會搜尋指定的目錄。自 Ant 1.7 起 |
否;預設為 false |
Available
的 classpath 屬性是 路徑狀結構,也可以透過巢狀 <classpath>
元素設定。
Available
的 filepath 屬性是 路徑狀結構,也可以透過巢狀 <filepath>
元素設定。
如果在 Ant 的類別路徑中找到類別 org.whatever.Myclass
,則將 Myclass.present
屬性設定為值 true
。
<available classname="org.whatever.Myclass" property="Myclass.present"/>
如果找到檔案 ./lib/jaxp11/jaxp.jar,則將 jaxp.jar.present
屬性設定為值 true
。
<property name="jaxp.jar" value="./lib/jaxp11/jaxp.jar"/> <available file="${jaxp.jar}" property="jaxp.jar.present"/>
如果找到目錄 /usr/local/lib,則將 local.lib.present
屬性設定為值 true
。
<available file="/usr/local/lib" type="dir" property="local.lib.present"/>
如果在 jaxp 參考的類別路徑中找到類別 javax.xml.transform.Transformer
(在本例中為 ./lib/jaxp11/jaxp.jar),則將 jaxp11.present
屬性設定為值 true
。
...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"/>
如果找到資源檔案 extratasks.properties,則將 have.extras
屬性設為 true
值。
<available property="have.extras" resource="extratasks.properties"> <classpath> <pathelement location="/usr/local/ant/extra.jar"/> </classpath> </available>