所以我有2个类文件夹,一个是res
,另一个是lib
。我的res
文件夹有两个其他子文件夹,一个带有图像,另一个带有声音。我的lib
文件夹有4个其他jar文件和一个本机文件夹。这一切都在eclipse中工作但是当我尝试将其导出为可运行的jar时它不起作用。我不会认出任何东西。
我要调用我正在使用的图像ImageIO.read(new File(imagePath));
对于声音,我使用前面提到的外部库来加载和播放它们。
答案 0 :(得分:1)
我要调用我正在使用的图片
ImageIO.read(new File(imagePath))
与你的标题相反,这是不一个Eclipse问题 - 它只是你代码中的一个错误,因为你的代码假定图像存储为文件系统中的文件,而不是
您没有图像文件,因此不应使用new File
。您应该使用Class.getResource
或ClassLoader.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文件的根目录中的文件夹。 (我们没有足够的信息在这里为您提供完整的代码,但这应该足以让您前进。)