imageio.IIOException: Can't read input file
Have you tried using new File("logo.jpg");
(without the leading /)?
And are you sure, the logo.jpg is copied to your output? (Some IDEs don't copy every file from your source-directories to your output (or target) directories.)
/src
|-> Window.java
|-> Logo.jpg
becomes
/out
|-> Window.class
(Note that the IDE/compiler does not copy the image to your output-directory and so the compiled code cannot find the image - allthough you did specify the correct path)
Try do debug which file resource you actually try to access. First step would be to get your new File("/logo.jpg").get [Canonical]Path()
and print it to System.out
(or alternatively watch in the the debugger). I guess the problem is the /
before logo.jpg
, which points to your root directory (e.g. c:) and your file isn't there, but I don't know your file setup in detail.
The problem is that you're looking at nothing before the image, so it's looking into a folder that isn't there to find it.
You have to create a folder to store the images in your project, and then call to it, your folder name in front of the image name. e.g.
ImageIO.read(new File("Folder/Image.png"));
Otherwise you can find the image by going through the entire directory, which isn't a good way as it takes longer, and when you move your project it won't be a working link as the directory will be different. For example:
ImageIO.read(new File("D:/eclipse/Workspace/Project/Folder/Image.png"));
Creating a folder in your project so its on the same level as the source folder in the directory and call to it for the image, like so:
Folder structure;
settings
src
Image Folder
bin