完整的本地路径(C:\\Users\\workspace\\myproject\\src\\eclipse\\mainclass\\icons\\my-image.png
)工作正常,但是像下面的代码一样使用短路径会产生异常javax.imageio.IIOException: Can't read input file!
。
我在做什么错了?
JLabel lab_h1 = new JLabel();
BufferedImage img = null;
try {
img = ImageIO.read(new File("icons/my-image.png"));
} catch (IOException e) {
e.printStackTrace();
}
Image dimg = img.getScaledInstance(140, 40,Image.SCALE_SMOOTH);
lab_h1.setIcon(new ImageIcon(dimg));
答案 0 :(得分:2)
您遇到的问题是,当您尝试使用相对路径打开文件时,它看起来相对于运行程序的位置。您可以使用资源来代替希望获得正确路径的方法。
BufferedImage img = ImageIO.read(
YourClassName.class.getResource(
"/mainclass/icons/my-image.png"
)
);
我想您可能需要修改一下路径,因为我不知道您的包结构是什么。我还假设eclipse将捆绑源文件夹中的资源文件。