# ImageIO cant create InputStream



## filth (19. Dez 2010)

Hallo zusammen,

der folgende Codeblock verursacht diese Exception bei einem Anwender. Ich kann bei mir keinen Fehler reproduzieren:

javax.imageio.IIOException: Can't create an ImageInputStream!


```
/** 
	 * This reloads the original file and returns Image
	 * 
	 * @return
	 * @throws InvalidPictureException 
	 */
	private Image loadOriginalFile() throws InvalidPictureException
	{
		Image myImage = null;
		try {
			myImage = ImageIO.read(new File(filePath));
		} catch (IOException e) {	
			CustomExceptionHandler myEx = new CustomExceptionHandler();
			myEx.logError(e);
		}
		
		if (myImage == null)
		{
			throw new InvalidPictureException();			
		}
		
		return myImage;
	}
```

Die Exception fliegt in Zeile 12. Java Version bei der Versuchsperson:

>> C:\Program Files (x86)\Java\jre6\bin>java -version
>> java version "1.6.0_21"
>> Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
>> Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)
>>
>> C:\Program Files (x86)\Java\jre6\bin>

Hat jemand eine Idee woran es liegt? Es wird versucht eine herkömmliche .jpg Datei zu öffnen.

Vielen Dank!


----------



## Empire Phoenix (19. Dez 2010)

JA die datei existiert nicht zb.? evtl mal die exeption anzeigen /posten?


----------



## filth (19. Dez 2010)

Hmm ne die Datei ist definitiv da. Die Exception ist hier:

javax.imageio.IIOException: Can't create an ImageInputStream


----------



## kay73 (19. Dez 2010)

Offensichtlich Windows. Ist 
	
	
	
	





```
filePath
```
 absolut? Falls nicht wird das file im working directory gesucht und das kann irgendwo sein, z. B. falls der Anwender eine Verknüpfung auf ein JAR file doppelgeklickt hat. Vorher mal mit 
	
	
	
	





```
File.exists()
```
 und Konsorten testen.


----------



## filth (19. Dez 2010)

filePath ist absolut, da die zu ladenden Dateien nicht im gleichen Verzeichnis liegen. Kann es sein, dass diese Exception nicht besagt, dass die Datei nicht geöffnet werden kann, sondern eine andere Ursache hat?


----------



## kay73 (19. Dez 2010)

Hast Du denn das Bild mal bei Dir probiert? Vielleicht scheitert's nur an so was Dummem wie der Dateiendung... (die ist doch garantiert .jpg?). Oder vielleicht ist es ein .lnk auf ein JPG und der Nutzer sieht es nicht?


----------



## tagedieb (20. Dez 2010)

Check mal ob das Bild nicht korrupt ist. Kannst du's in einem Bildbetrachter Program oeffnen?
Sind die Fileberechtigungen richtig gesetzt?
Kannst du den absoluten Dateipfad ausgeben und pruefen ob dies der erwartete Pfad ist?

Kann es sein, dass du deine Software beim Anwender als .jar aus und das .jpg befindet sich im .jar?


----------



## HoaX (20. Dez 2010)

Zeig doch mal den kompletten Trace, nicht nur die erste Zeile der Exception


----------



## filth (20. Dez 2010)

tagedieb hat gesagt.:


> Check mal ob das Bild nicht korrupt ist. Kannst du's in einem Bildbetrachter Program oeffnen?
> Sind die Fileberechtigungen richtig gesetzt?
> Kannst du den absoluten Dateipfad ausgeben und pruefen ob dies der erwartete Pfad ist?
> 
> Kann es sein, dass du deine Software beim Anwender als .jar aus und das .jpg befindet sich im .jar?



Das kann ich alles mit Nein beantworten. Vorhin ziemlich lange mit dem betroffenen getestet und der Fehler ließ sich nicht mehr reproduzieren. Das einzige was mir auffiel, ist dass seine JVM 0_21 war, mein Entwicklungsrechner hat die 0_23. Habe jetzt einen Check beim Programmstart eingebaut.

Der komplette Trace ist hier:
Date: Sun Dec 19 04:30:58 CET 2010
You crashed thread Thread-8
Exception was: javax.imageio.IIOException: Can't create an ImageInputStream!
Trace: 
--> at javax.imageio.ImageIO.read(Unknown Source)
--> at nightClient.Image.ImgShowComponent.loadOriginalFile(ImgShowComponent.java:68)
--> at nightClient.Image.ImgShowComponent.<init>(ImgShowComponent.java:54)
--> at nightClient.Controller$1.run(Controller.java:357)

Viele Grüße
Alex


----------



## filth (20. Dez 2010)

Ok Leute, ihr könnt mich jetzt kreuzigen....Hab den Fehler gefunden, es passiert wenn statt Dateien direkt Verzeichnisse ausgewählt werden. Sorry und Danke an alle , die sich beteiligt haben!


----------

