2011-02-16 44 views
0

按照我的理解,java.home是一個ANT內置屬性。在我們的場景中,我們將java.home的值寫入同一項目中的另一個屬性文件。 Hovewer,我們觀察到,當我們將java.home的值寫入上述屬性文件時,該值將以額外的斜槓(例如:'d:/jdk1.6.0_12')寫入上述屬性文件中'd \:\\ jdk1.6.0_12 \\ jre')並且這些額外的斜線在我們的系統中引發了問題。因此,我需要你的建議/幫助/輸入來知道1)是否有辦法將java.home寫入另一個沒有額外斜槓的屬性文件或2)如果有方法在ANT中編寫腳本建立文件,當java.home屬性將從上述​​包含額外斜線的屬性文件中讀取時,該腳本將截斷不需要的/額外的斜線,並將返回確切路徑至java.homejava.home屬性在寫入屬性文件時會添加額外的斜線?

回答

3

在屬性文件中,\是一個轉義字符,用於轉義屬性文件語法中具有特殊含義的所有字符,如:。閱讀屬性文件時應該刪除它。不是嗎?

對於導出值,可能是一個簡單的<echo file="...">${java.home}</echo>而不是屬性文件導出會更有用?

+0

感謝您的及時回覆。 – 2011-02-16 20:13:57

0

下面是這個問題的解決方案:

<path id="property.toreplace.path"> 
    <pathelement path="${property.toreplace}"/> 
</path> 
<pathconvert targetos="unix" property="formatted.property.toreplace" refid="property.toreplace.path"/>