蚂蚁java任务与空间问题

时间:2011-07-19 13:21:07

标签: windows ant jar space

我试图通过ant脚本执行一个jar文件。喜欢这个

<java jar="${jar.file}" fork="true" failonerror="true">
   <arg line="${jar.args}"/>
</java>

jar.file包含jar文件的完整路径,包含一些空格

当我在Linux上执行该操作时,没有问题。但是当我在Windows上做同样的事情时,我得到了错误。 java任务无法找到jar!我已经尝试了所有不同的变体,比如用引号(“)包装文件路径,用”替换空格“,尝试用反斜杠转义等等。无效!

有没有人遇到过这个问题?只是想知道这是Ant的限制还是我错过了什么。

P.S很抱歉没有提供我收到的完整错误消息。我现在离开了我的Windows PC。作为一种解决方法,我决定将jar复制到C:\并使用它。

1 个答案:

答案 0 :(得分:0)

处理属性中的空间问题的推荐方法是将它们放入 额外'',在大多数情况下应该有效,甚至更好地使用没有空格的路径

<java jar="'${jar.file}'" fork="true" failonerror="true">
   <arg line="${jar.args}"/>
</java>

应该有效,正如我在评论中已经提到的那样。

修改
你是对的,因为只有jar属性的相对路径,它将无法工作 事实上我想到的是:

<project>
 <property name="jar.file" value="foobar.jar"/>
 <property name="jar.dir" value="/home/rosebud/temp/path with blanks"/>

 <java
   dir="${jar.dir}"
   jar="${jar.dir}/${jar.file}"
   fork="true"
   failonerror="true"
   >
   <arg value="..." />
 </java>
</project>

它也意外地工作,路径中的空格为f.e.在上面的片段中

认为处理空间问题的标准方法与其他情况一样适用:

"'${property with blanks}'"

但事实并非如此。