Муравей - Импорт JAR из ZIP-файла - PullRequest
1 голос
/ 28 ноября 2011

Я хочу включить файл jar ( ant-contrib.jar ) в файл ant build.xml из zip-файла. Как я могу сделать это, не разархивируя ZIP-файл. Я пытался использовать jarURLConnect.

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

Но это дает мне

java.lang.IllegalArgumentException: искаженная кодировка \ uxxxx.

Нет ошибки, если я заменю "ant-contrib.jar" файлом "test.properties".

Может кто-нибудь, пожалуйста, помогите ..

Ответы [ 4 ]

1 голос
/ 28 ноября 2011

Тег property предназначен для включения свойств, которые будут в файле свойств.Файл JAR не является файлом свойств. свойство docs довольно ясно.

Вам нужно распаковать файл, чтобы добавить его в путь к классам, а затем добавить его в путь к классам: см. Документацию path-like структуры .Это не просто собственность.

0 голосов
/ 28 ноября 2011

Не совсем уверен, что вы делаете, но URL-адреса всегда имеют две косые черты в качестве разделителя.Например, в Subversion вы должны сделать file://D:/testing.zip!/testing/ant-contrib.jar.

Теперь спецификация URL в задаче <property> должна указывать на файл свойств javaspec'd , поэтому я не будудумаю, что jar будет работать.

Что я могу вам сказать, так это то, что Java написана так, что она может читать файлы внутри zip-файлов и jar-файлов без предварительной разархивации.В Java не должно быть никакой разницы, если вы разархивировали testing.zip в каталог с именем testing.zip и получили доступ к файлам оттуда, или сохранили его в виде zip-файла.Вы должны иметь возможность включить его в путь (без восклицательного знака):

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

Это должно сработать.

То, что вы можете попробовать, - это распаковать файл test.zip в каталогто же имя, и посмотреть, если вы можете получить доступ к файлам в ant-contrib.jar.Затем попробуйте заархивировать файл test.zip и посмотреть, есть ли разница.Там не должно быть.

0 голосов
/ 28 ноября 2011

попробуйте "zip" вместо "jar":

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

0 голосов
/ 28 ноября 2011
...