# Probleme beim Laden der Images aus dem "Tutorial für Java-Spiele"



## Gossi (12. Okt 2011)

Hallo,

Habe vorhin mal angefangen das Tutorial für Java-Spiele zu lesen, erstmal nen Lob, is echt gut geworden, nur hänge ich momentan an einer "java.lang.IllegalArgumentException" und bedingt dadurch beim Zugriff auf das eigentlich zu erstellende Object eine NullPointerException:


```
java.lang.IllegalArgumentException: input == null!
	at javax.imageio.ImageIO.read(ImageIO.java:1362)
	at de.gossmann.spiel.GamePanel.loadPics(GamePanel.java:104)
	at de.gossmann.spiel.GamePanel.doInitializations(GamePanel.java:49)
	at de.gossmann.spiel.GamePanel.<init>(GamePanel.java:39)
	at de.gossmann.spiel.GamePanel.main(GamePanel.java:28)
Exception in thread "main" java.lang.NullPointerException
	at de.gossmann.spiel.GamePanel.loadPics(GamePanel.java:110)
	at de.gossmann.spiel.GamePanel.doInitializations(GamePanel.java:49)
	at de.gossmann.spiel.GamePanel.<init>(GamePanel.java:39)
	at de.gossmann.spiel.GamePanel.main(GamePanel.java:28)
```

Mal nen bissl Code (1 zu 1 ausm Tutorial übernommen)
[JAVA=97]
private BufferedImage[] loadPics(final String path, final int pics) {
		BufferedImage[] anim = new BufferedImage[pics];
		BufferedImage source = null;

		URL pic_url = getClass().getClassLoader().getResource(path);

		try {
			source = ImageIO.read(pic_url);
		} catch (Exception ex) {
			ex.printStackTrace();
		}

		for (int i = 0; i < pics; i++) {
			anim_ = source.getSubimage(i * source.getWidth() / pics, 0,
					source.getWidth() / pics, source.getHeight());
		}

		return anim;
	}
[/code]

Der Aufruf des ganzen:
[JAVA=49]
BufferedImage[] heli = loadPics("pics/heli.gif", 4);
[/code]

Hier nochmal die Pfade:
Projekt (Klassen):
D:\Workspace\TestProj\src\de\gossmann\spiel

Bilddatei:
D:\Workspace\TestProj\src\de\gossmann\spiel\pics

Danke schonmal für die Hilfe

PS:
Sorry für das doppelte Posten, Inet spinnt grade -.-_


----------



## SlaterB (12. Okt 2011)

wo sind die class-Dateien zu den Java-Dateien in src letztlichen auf der Festplatte, suche danach, 
sind sie zufällig im Workspace in einem bin-Verzeichnis?
wurden auch die pics dorthin kopiert? am besten automatisch von der IDE, für den Moment notfalls auch einmalig selber

was liefert
System.out.println(getClass().getClassLoader().getResource("GamePanel.class"));
?

generell könnte getClass().getResource() besser sein als getClass().getClassLoader().getResource(),
in diesem Fall dürfte es aber dasselbe Problem sein, bei packages macht es anscheinend einen Unterschied


----------



## Gossi (12. Okt 2011)

SlaterB hat gesagt.:


> wo sind die class-Dateien zu den Java-Dateien in src letztlichen auf der Festplatte, suche danach,
> sind sie zufällig im Workspace in einem bin-Verzeichnis?
> wurden auch die pics dorthin kopiert? am besten automatisch von der IDE, für den Moment notfalls auch einmalig selber
> 
> ...



Genau das wars, mit dem Classloader dazwischen gabs die Fehler, ohne sind se weg, danke dir ^^


----------



## SlaterB (12. Okt 2011)

dann hast du packages verwendet, wie es ja eigentlich auch für alle Java-Klassen zu empfehlen ist, bisschen schlecht im Tutorial?

"1 zu 1 ausm Tutorial übernommen" wäre damit nicht ganz richtig


----------



## Gossi (12. Okt 2011)

SlaterB hat gesagt.:


> dann hast du packages verwendet, wie es ja eigentlich auch für alle Java-Klassen zu empfehlen ist, bisschen schlecht im Tutorial?
> 
> "1 zu 1 ausm Tutorial übernommen" wäre damit nicht ganz richtig



Is ja gut 
Hab das Tutorial mittlerweile auch schon fast komplett durch, ist echt gut gemacht, macht richtig Spaß ^^


----------

