Java不会正确导出我的资源

时间:2014-03-09 16:37:19

标签: java eclipse

所以我有2个类文件夹,一个是res,另一个是lib。我的res文件夹有两个其他子文件夹,一个带有图像,另一个带有声音。我的lib文件夹有4个其他jar文件和一个本机文件夹。这一切都在eclipse中工作但是当我尝试将其导出为可运行的jar时它不起作用。我不会认出任何东西。

我要调用我正在使用的图像ImageIO.read(new File(imagePath));对于声音,我使用前面提到的外部库来加载和播放它们。

1 个答案:

答案 0 :(得分:1)

  

我要调用我正在使用的图片ImageIO.read(new File(imagePath))

与你的标题相反,这是一个Eclipse问题 - 它只是你代码中的一个错误,因为你的代码假定图像存储为文件系统中的文件,而不是

没有图像文件,因此不应使用new File。您应该使用Class.getResourceClassLoader.getResource - 或getResourceAsStream等价物。这样,它将从加载类本身的任何上下文加载资源,这适用于jar文件。例如,你可能有:

Image image = ImageIO.read(MyClass.getResource("foo.png"));

...其中foo.png实际上与类在同一个包结构中。可替换地:

Image image = ImageIO.read(MyClass.getResource("/images/foo/bar.png"));

其中images是由同一ClassLoader加载的一个jar文件的根目录中的文件夹。 (我们没有足够的信息在这里为您提供完整的代码,但这应该足以让您前进。)