我使用Java开发了一个应用程序(使用Eclipse IDE),并在代码中引用了存储在名为“ source”的源文件夹中的图像,并且在IDE中可以正常工作。当我将罐子提取到可运行的罐子中时,没有错误,但图片没有显示出来,或者如果显示出来,则仅显示了它后面的内容。我在WinRar中打开了.jar文件,似乎所有图片都与类文件一起扔了。我怎样才能解决这个问题?

Image i = Toolkit.getDefaultToolkit().getImage("sources/SystemTrayOne.png");

最佳答案

您正在尝试获取Jar中不存在的文件。而是通过Class#getResource(...)获取URL

例如。,

URL imgUrl = getClass().getResource(....); // resource name here
Image i = Toolkit.getDefaultToolkit().getImage(imgUrl);


或更好

URL imgUrl = getClass().getResource(....); // resource name here
Image i = ImageIO.read(imgUrl);

09-26 02:20