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'(无引号)。

我的第二个想法是您正在“工作”目录中寻找图像,但这可能没有设置为您认为应该的样子,特别是如果您在其他工具中运行。我建议你打印出 System.getProperty("user.dir") 的值,看看它到底是什么。根据您需要做什么,如果您从类路径加载图像,您可能会得到更好的结果(您应该能够找到一些关于如何从类路径加载资源流的好教程)。

于 2012-07-16T21:36:41.020 回答