Ant - 从zip文件中导入jar

时间:2011-11-28 13:52:35

标签: java ant import jar build.xml

我想在zip中包含一个jar文件( ant-contrib.jar )在我的ant build.xml中。 如何在不解压缩zip文件的情况下执行此操作。 我试过使用jarURLConnect。

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

但这给了我一个

  

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

如果我将“ant-contrib.jar”替换为“test.properties”文件,则没有错误。

任何人都可以帮忙..

4 个答案:

答案 0 :(得分:1)

property标记用于包含属性,属性位于属性文件中。 jar文件不是属性文件。 property docs很清楚。

您需要unzip该文件才能将其添加到类路径中,然后将其实际添加到类路径中:请参阅path-like structures文档。不过,这不仅仅是一个财产。

答案 1 :(得分:0)

检查Unzip Task

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

现在<property>任务中的网址规范应该指向javaspec'd property file,所以我认为jar不会起作用。

我可以告诉你的是,Java的编写是为了能够在没有首先解压缩的情况下读取拉链和罐子中的文件。如果您将testing.zip解压缩到名为testing.zip的目录并从那里访问文件,或将其保存为zipfile,那么Java应该没有区别。您应该能够将其包含在路径名中(无感叹号):

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

这应该有效。

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