当我收到此错误时,我正试图在终端中运行一个jar文件:
我可以在我的IDE中运行此文件,但是当我将项目导出为jar时,它无法找到该文件。以下是错误指向的代码:
BufferedImage buttonIcon = ImageIO.read(new File("img/button.png"));
button = new JButton(new ImageIcon(buttonIcon));
答案 0 :(得分:2)
有两个问题。
getResourceAsStream(...)
来使用类加载器从jar加载。要验证jar文件中的图像存在,请使用命令jar -tf jarfile.jar
并查看jar中的button.png
是否在预期的位置。如果不是,请考虑改变您的罐子包装。
对于getResourceAsStream(...)
,有许多人已经提供了如何正确地做到这一点。看看他们的答案。
答案 1 :(得分:1)
如果您想从JAR内部读取该文件,请使用:
BufferedImage buttonIcon = ImageIO.read( getClass().getResourceAsStream("/classpath/to/my/file"));
答案 2 :(得分:1)
试试这个:
String imgPath = "img/button.png";
BufferedImage buffImage = ImageIO.read(getClass().getResourceAsStream(imgPath));
答案 3 :(得分:0)
使用以下内容:
ImageIO.read(getClass().getClassLoader().getResource(path));
确保路径不包含src
文件夹(但将图像保留在实际文件夹中)
path = "image.jpg";