0

申し訳ありませんが、これは初心者の質問ですが、Ant に問題があり、解決方法がよくわかりません。

png および jpg 画像を含むフォルダーを追加する方法がわかりません。これらの画像は後で表示され、次のコマンドを使用して呼び出されます。

new URL("file:///" + System.getProperty("user.dir") + "\\img\\IMAGENAMEHERE.png")

ファイルは、/src の隣のフォルダー内のフォルダー /img にあります。

だから、私は自分のantビルドファイルを持っていて、私のクラスパスは次のとおりです:

<path id="classpath">
    <fileset dir="libs">
        <include name="**/*.jar" />
    </fileset>
    <pathelement location="${build}" />
    <pathelement location="${instrumented.dir}" />
    <pathelement location="${build}/tests" />
    <pathelement location="${libs}" />
    <pathelement location="${img}" />
</path>

それがうまくいかなかったので、画像をビルドフォルダーにコピーしようとしました(antビルドファイルで、ビルドフォルダーとbinフォルダーを作成します)

<target name="setup">
    <delete dir="${build}" />
    <mkdir dir="${build}"/>
    <mkdir dir="${build}/app"/>
    <mkdir dir="${build}/tests"/>

    <copy todir="${build}/img"> 
        <fileset dir="${img}" >
            <include name="**/*.png" />
            <include name="**/*.jpg" />
        </fileset> 
    </copy>
</target>

しかし、それもうまくいきませんでした。どうすればよいかわかりません。問題は、Antでコンパイルしjava StartProgram後、コンソール呼び出しで実行するとこのエラーが発生することです:

Unable to obtain resource from C:\folder\img\salidaCerrada.png: java.util.zip.ZipException: error in opening z
ip file
    [junit] Unable to obtain resource from C:\folder\img\salidaCerrada.png:
    [junit] java.util.zip.ZipException: error in opening zip file
    [junit]     at java.util.zip.ZipFile.open(Native Method)
    [junit]     at java.util.zip.ZipFile.<init>(ZipFile.java:127)
    [junit]     at java.util.jar.JarFile.<init>(JarFile.java:135)
    [junit]     at java.util.jar.JarFile.<init>(JarFile.java:99)
    [junit]     at org.apache.tools.ant.AntClassLoader.getResourceURL(AntClassLo
ader.java:1006)

何か案が?よろしくお願いします。

編集: .jar ファイルを作成するのではなく、アプリケーションをテストしてコンパイルする (.class ファイルを作成する) だけであることを忘れていました。画像は .jar ファイルにもありません。

4

1 に答える 1

0

私の最初の考えは、あなたの ${img} 要素がどこも指していないということです。ツールを使用して build.xml ファイルを作成した場合、おそらく ${libs} およびその他のプロパティが作成されます。まず、${img} を 'img' (引用符なし) に置き換える必要があります。

私の 2 番目の考えは、「作業」ディレクトリで画像を探しているということですが、特に他のツール内で実行している場合は、本来あるべきものに設定されていない可能性があります。System.getProperty("user.dir") の値を出力して、それが実際に何であるかを確認することをお勧めします。何をする必要があるかにもよりますが、クラス パスから画像をロードすると、おそらくより良い結果が得られます (クラス パスからリソース ストリームをロードする方法に関する優れたチュートリアルを見つけることができるはずです)。

于 2012-07-16T21:36:41.020 に答える