Я не вижу никаких проблем с этим.
Вот пример файла zip (jar):
$ jar tvf src.zip
0 Wed Nov 30 11:54:38 GMT 2011 META-INF/
62 Wed Nov 30 11:54:38 GMT 2011 META-INF/MANIFEST.MF
0 Wed Nov 30 11:53:28 GMT 2011 src/
0 Wed Nov 30 11:57:14 GMT 2011 src/a/
0 Wed Nov 30 11:53:38 GMT 2011 src/a/exists.txt
0 Wed Nov 30 11:57:14 GMT 2011 src/a/other.txt
Вот пример файла сборки для проверки поведения zipfileset для существующих и несуществующих файлов:
<project default="test">
<target name="test">
<pathconvert property="found">
<zipfileset src="src.zip">
<include name="src/a/not-exists.txt"/>
<include name="src/a/exists.txt"/>
</zipfileset>
</pathconvert>
<echo message="found: ${found}"/>
<mkdir dir="extract"/>
<copy todir="extract">
<zipfileset src="src.zip">
<include name="src/a/not-exists.txt"/>
<include name="src/a/exists.txt"/>
</zipfileset>
</copy>
</target>
</project>
Вот вывод из этого образца:
$ ant
Buildfile: C:\tmp\ant\build.xml
test:
[echo] found: C:\tmp\ant\src.zip:src/a/exists.txt
[mkdir] Created dir: C:\tmp\ant\extract
[copy] Copying 1 resource to C:\tmp\ant\extract
BUILD SUCCESSFUL
Total time: 0 seconds
Нет ошибок при попытке доступа к несуществующим файлам.
А вот результат, в который были скопированы файлы dir из zip-файла:
$ find extract/
extract/
extract/src
extract/src/a
extract/src/a/exists.txt