对不起,这是一个新手问题,但是我遇到了一些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文件中。
答案 0 :(得分:0)
我的第一个想法是你的$ {img}元素没有指向任何地方。如果您使用工具创建build.xml文件,那么它可能会创建$ {libs}和其他属性。首先,你应该用'img'替换$ {img}(没有引号)。
我的第二个想法是你正在寻找“工作”目录中的图像,但这可能没有设置为你认为它应该是什么,特别是如果你在其他工具中运行。我建议你打印出System.getProperty(“user.dir”)的值,看它究竟是什么。根据您的需要,如果从类路径加载图像,您可能会得到更好的结果(您应该能够找到一些关于如何从类路径加载资源流的好教程)。