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

Tags:

Java

Image