从可运行的jar列出目录中的文件

时间:2014-10-18 15:34:43

标签: java image jar loading executable-jar

因此,在将我的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

1 个答案:

答案 0 :(得分:1)

  1. 获取正在运行的jar。提示在这里:Get name of running Jar or Exe

  2. 使用JarFile / JarEntry访问JAR:http://docs.oracle.com/javase/7/docs/api/java/util/jar/JarFile.html#entries()