因此,在将我的java项目(游戏)转换为可运行的jar之后,我已经尝试了很长一段时间来处理我遇到的问题。我的问题与我加载资源的方式有关。正如我在许多其他答案中所读到的,处理图像加载的一种可能方法是,例如在处理可运行的jar时,使用ImageIO.read(getClass().getResourceAsStream(path);
这非常有效。
但我的问题是,在一个特定的文件夹中,我需要加载300个pngs,到目前为止,我处理这个问题的方法是使用表示目录的File dir
对象然后迭代使用dir.listFiles()
通过该目录中的所有文件,提取其路径并使用ImageIO
正常加载它们。问题是这个方法在启动jar时会引发异常。
虽然理论上我可以硬编码我想要的所有300个png的每个图像加载 知道是否有办法绕过这个障碍。
非常感谢并为这篇长篇文章感到抱歉!
亚历
(更新)我在eclipse中的项目层次结构如下所示:
游戏//项目
>src //source code
>main //main package
>loader // the loader file
>res // resources
>images // the folder containing the 300pngs
答案 0 :(得分:1)
获取正在运行的jar。提示在这里:Get name of running Jar or Exe。
使用JarFile / JarEntry访问JAR:http://docs.oracle.com/javase/7/docs/api/java/util/jar/JarFile.html#entries()。