ImageIO cant create InputStream

filth

Bekanntes Mitglied
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!

Java:
	/** 
	 * 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!
 
Hmm ne die Datei ist definitiv da. Die Exception ist hier:

javax.imageio.IIOException: Can't create an ImageInputStream
 
Offensichtlich Windows. Ist
Code:
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
Code:
File.exists()
und Konsorten testen.
 
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?
 
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?
 
Zuletzt bearbeitet:
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?
 
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
 
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!
 

Neue Themen


Zurück
Oben