我试图通过ant脚本执行jar文件。这样的
<java jar="${jar.file}" fork="true" failonerror="true">
<arg line="${jar.args}"/>
</java>
jar。文件具有jar文件的完整路径,并且在其中包含一些空间。
当我在Linux上执行时,没有问题。但是当我在Windows上做同样的事情时,我得到了错误。Java任务找不到jar!我尝试过所有不同的变化,比如用引号(")包装文件路径,用"代替空格,用反斜杠转义,等等。不工作!
有人遇到过这个问题吗?只是想知道这是Ant的限制还是我错过了什么。
p。对不起,我没有提供完整的错误信息。我现在不在我的Windows电脑上。作为一种解决方法,我决定将jar复制到C:并使用它。
处理属性中的空间问题的推荐方法是将它们放入额外的",在大多数情况下应该可以工作,最好使用不带空格的路径
<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>
,并且在上面的代码片段
认为处理空间问题的标准方法将适用于其他情况:
"'${property with blanks}'"