我正在尝试使用 Java Swing 显示一个简单的png图像。图像存储在项目文件夹中,更准确地说是:~/Workspace/MyProject/res/logo.png
。
在扩展FirstAccess.java
的名为JFrame
的类中,我声明:
final BufferedImage myLogo = ImageIO.read(new File("../res/logo.png"));
final JLabel logoLabel = new JLabel(new ImageIcon(myLogo));
// [...]
但这会产生以下异常。
线程“main”中的异常javax.imageio.IIOException:无法读取输入文件!
at javax.imageio.ImageIO.read(ImageIO.java:1301)
[...]
使用退出代码1完成处理
有什么问题?我使用了错误的路径吗?可能存在一些访问权限问题吗?
注意: FirstAccess.java
完全位于~/Workspace/MyProject/src/main/
Note2 :我也尝试使用"~/Workspace/MyProject/res/logo.png"
内的路径new File()
...但仍然会出现同样的问题。
答案 0 :(得分:0)
对于资源,请改用getClass().getResource(String)
在你的情况下:
final BufferedImage myLogo = ImageIO.read(getClass().getResource("../res/logo.png"));
(或final BufferedImage myLogo = ImageIO.read(FirstAccess.class.getResource("../res/logo.png"));
用于静态上下文)