无法将jar复制到绝对路径

时间:2010-10-01 17:21:12

标签: java ant jar copy

我正在尝试在我的桌面上复制Demo.jar文件(由ant任务生成)(或者在我的XP机器上由它的绝对路径指定的任何目录)。

我在属性文件中指定绝对路径并即时读取它。 问题是我无法正确读取这个绝对路径,我想要复制Demo.jar。

属性文件中给出的绝对路径是: -

“C:\ Documents and Settings \ Administrator \ Desktop \ google \ my java”

和脚本回应: -

[echo] C:Documents and SettingsAdministratorDesktopgooglemy java

以下是我编辑的build.xml版本和antParams.properties: -

的build.xml

<project default="copy">

    <property file="antParams.properties" prefix="antParams"/>

    <target name="jar" >
        <jar destfile="${antParams.jarName}"
             basedir="${antParams.binDir}"
            includes="**/*.class"

             />
    </target>

    <target name="copy" depends="jar">
            <echo>${antParams.jarDestination}</echo>
        <!-- what goes here --> 
    </target>

</project>

antParams.properties

jarName=Demo.jar
binDir=bin
jarDestination=C:\Documents and Settings\Administrator\Desktop\

提前完成......: - )

2 个答案:

答案 0 :(得分:4)

问题在于读取属性文件,与Ant无关或其识别文件分隔符的灵活性。

java.util.Properties documentation,中所述,转义序列以\开头。如果你想要一个文字反斜杠,你需要转义它:\\

  

......非零偶数 2n   一行之前的连续反斜杠   终结符(或其他地方)编码 n   逃避处理后的反斜杠。

答案 1 :(得分:1)

使用双反斜杠(c:\\ Doc ...),或者更好的是,使用正斜杠(c:/ Doc ...)。 Ant知道如何以跨平台的方式使用正斜杠,它将它正确地转换为窗口上的反斜杠。