【发布时间】:2017-05-25 15:09:36
【问题描述】:
我正在尝试使用 Java Swing 显示一个简单的 png 图像。图像存储在项目文件夹中,更准确地说是:~/Workspace/MyProject/res/logo.png。
在扩展JFrame 的名为FirstAccess.java 的类中,我因此声明:
final BufferedImage myLogo = ImageIO.read(new File("../res/logo.png"));
final JLabel logoLabel = new JLabel(new ImageIcon(myLogo));
// [...]
但这会产生以下异常。
线程“main”javax.imageio.IIOException 中的异常:无法读取输入文件!
在 javax.imageio.ImageIO.read(ImageIO.java:1301)
[...]
进程以退出代码 1 结束
有什么问题?我使用错误的路径吗?可能有一些访问权限问题吗?
注意:FirstAccess.java正好位于~/Workspace/MyProject/src/main/
注意2:我也尝试过在new File()中使用路径"~/Workspace/MyProject/res/logo.png"...但仍然出现同样的问题。
【问题讨论】:
-
应用程序资源在部署时将成为嵌入式资源,因此明智的做法是立即开始访问它们。 embedded-resource 必须通过 URL 而不是文件访问。 请参阅info. page for embedded resource 了解如何形成 URL。
标签: java image swing embedded-resource