添加带有图像的文件夹到ant build

时间:2012-07-16 18:47:44

标签: java ant

对不起,这是一个新手问题,但是我遇到了一些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文件中。

1 个答案:

答案 0 :(得分:0)

我的第一个想法是你的$ {img}元素没有指向任何地方。如果您使用工具创建build.xml文件,那么它可能会创建$ {libs}和其他属性。首先,你应该用'img'替换$ {img}(没有引号)。

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