以下代码在BlueJ IDE中成功运行,但在Eclipse中无法正常工作。
String path="images/pic1.jpg";
BufferedImage myPicture = null;
try {
myPicture = ImageIO.read(new File(path));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我的图片路径在IDE中都是相同的。同时我观察到,*.class文件和图像文件的目录结构也是相同的。
为什么这只会发生在Eclipse中呢?
"images/pic1.jpg"
是一个应用程序资源吗?'应用程序资源'可能是用于按钮或菜单项的图标,应用程序背景或启动画面等。如果是这样,那么代码使用的方法完全错误。它应该通过运行时类路径中的URL访问图像。如果有智能问题提出,将进一步解释。 - Andrew Thompsonread
之前,你应该assert
文件存在,以排除更多的失败可能性。 - Volker Stolz