読者です 読者をやめる 読者になる 読者になる

antでZipExceptionが起きる

Ant

antを作っていたらなぜかZipExceptionが発生してしまった。

Unable to obtain resource from XXXXX.properties:
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.(ZipFile.java:214)
at java.util.zip.ZipFile.(ZipFile.java:144)
at java.util.jar.JarFile.(JarFile.java:152)

調べてみたらにpropertiesファイルが直接設定されているのが問題だった。
antはに設定されたJarファイルをZipで操作するようで、その際にpropertiesファイルがあるとエラーになってしまう。

具体的に言うと、もともとこう書いていた。

<path id="run.classes">
    <path path="${classes}"/>
    <fileset dir="${lib.dir}">
        <include name="**/*.jar"/>
    </fileset>
</path>

<path id="conf">
    <fileset dir="${resource.dir}">
        <include name="**/*.properties"/>
    </fileset>
</path>

これではconfを参照した際にZipExceptionが起きてしまう。
これをこう書くとうまくいった。

<path id="run.classes">
    <path path="${classes}"/>
    <fileset dir="${lib.dir}">
        <include name="**/*.jar"/>
    </fileset>
</path>

<path id="conf">
    <pathelement location="${resource.dir}"/>
</path>