1

我想在 zip 中的 ant build.xml 中包含一个 jar 文件(ant-contrib.jar)。在不解压缩 zip 文件的情况下如何做到这一点。我曾尝试使用 jarURLConnect。

<property url="jar:file:/D:/testing.zip!/testing/ant-contrib.jar" />

但这给了我一个

java.lang.IllegalArgumentException:格式错误的 \uxxxx 编码。

如果我将“ant-contrib.jar”替换为“test.properties”文件,则不会出现错误。

任何人都可以请帮助..

4

4 回答 4

1

property标签用于包含属性,该属性将位于属性文件中。jar 文件不是属性文件。属性文档非常清楚。

您需要解压缩文件才能将其添加到类路径中,然后将其实际添加到类路径中:请参阅类似路径的结构文档。不过,这不仅仅是一个财产。

于 2011-11-28T14:21:20.730 回答
0

检查解压缩任务

于 2011-11-28T14:15:19.503 回答
0

尝试“zip”而不是“jar”:

<property url="zip:file:/D:/testing.zip!/testing/ant-contrib.jar" />

于 2011-11-28T14:17:02.760 回答
0

不完全确定你在做什么,但 URL 总是有两个正斜杠作为分隔符。例如,在 Subversion 中你会做file://D:/testing.zip!/testing/ant-contrib.jar.

现在,任务中的 URL 规范<property>应该指向javaspec 的属性文件,所以我认为 jar 不会起作用。

我可以告诉你的是,Java 是这样编写的,它可以读取 zip 和 jar 中的文件,而无需先解压缩它们。testing.zip如果您解压缩到一个名为testing.zip并从那里访问文件的目录,或者将其保存为 zipfile,那么Java 应该没有区别。您应该能够将其包含在路径名中(无感叹号):

<path id="classpath>
    <pathelement path="D:/testing.zip/testing/ant-contrib.jar"/>
    <yadda, yadda, yadda/>
</path>

那应该行得通。

您可以尝试将 testing.zip 解压缩到同名目录中,看看是否可以访问 .zip 中的文件ant-contrib.jar。然后,尝试压缩 testing.zip 并查看是否有任何区别。不应该有。

于 2011-11-28T14:54:35.523 回答