# Eclipse: wie Bilder zum Projekt hinzufügen



## robochris (7. Mrz 2008)

Hallo Allerseits,

bei einem kleinen Projekt mit Eclipse besteht folgendes Problem: Ich möchte mittels "Export" ein Jar-File erstellen, damit man das Programm vom Desktop aus starten kann. 
Wenn ich das Jar-File erstelle, werden bei der Ausführung die Bilder für die Icons aber nicht gefunden. 
Ich habe die Bilder einfach mit Hilfe des Explorers in den Projektordner \bin hinein kopiert ( \bin\images ). Danach mit "Export" das Jar-File erzeugt.
Das Projekt selbst wird aber von der Eclipse-Umgebung korrekt gestartet ( alles läuft ). Nur wenn ich das Jar-File anklicke, werden die Bilder nicht gefunden.

Nun eine Frage: muss man die Resourcen ( Bilder ) Eclipse irgendwie bekannt machen?

Gruß,
chris


----------



## The_S (7. Mrz 2008)

zum Einen müssen sie beim Export angehakt sein (was sie standardmäßig sein sollten) und zum Anderen musst du auf Bilder in einem Jar über den ClassLoader zugreifen.


----------



## robochris (7. Mrz 2008)

> .... und zum Anderen musst du auf Bilder in einem Jar über den ClassLoader zugreifen.



Was heißt das konkret? Im Moment sieht mein Code so aus:


```
// Laden und Einfügen des Asuro Bildes
	    Icon bild = new ImageIcon(AsuroControl.class.getResource( "/images/asuro.jpg" ) );
	    JButton buttonAsuroBild = new JButton( bild );
```

Beim Start mit Eclipse läuft's. Beim Anklicken des *.jar läuft es nicht.

chris


----------



## The_S (7. Mrz 2008)

Versuchs mal mit


```
getClass().getClassLoader()
```

anstelle von


```
AsuroControl.class
```


----------



## Quaxli (7. Mrz 2008)

Und lass' den ersten Schrägstricht weg. Statt "/images/asuro.jpg", schreibe "images/asuro.jpg"


----------



## robochris (7. Mrz 2008)

Funktioniert beides nicht.
Wie gesagt: beim Drücken auf den Run-Knopf von Eclipse läuft es. Beim Verpacken in ein Jar nicht. 
Wenn ich das Jar extrahiere, kann ich sehen, dass Eclipse den "image" Ordner nicht mitverpackt hat. Deshalb muss das Problem daran liegen, dass man Eclipse irgendwie mitteilen muss, den Image Ordner als projektzugehörig zu betrachten. 
Wie kann man das machen?


----------



## The_S (7. Mrz 2008)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> zum Einen müssen sie beim Export angehakt sein (was sie standardmäßig sein sollten)


----------



## Wildcard (7. Mrz 2008)

> Ich habe die Bilder einfach mit Hilfe des Explorers in den Projektordner \bin hinein kopiert ( \bin\images ).


Mit dem Explorer hast du im Eclipse Workspace gar nichts zu verändern, dadurch wird dein Workspace inkonsistent.
In 'bin' hast du sowieso nichts zu verändern, da Eclipse das Zeug nach belieben löschen und neu erstellen wird.
Mach dir ein Verzeichnis z.B. images im Project Root. Danach rechtsklick auf das Project -> Properties
Dann machst du dein images Verzeichnis zum zweiten source folder.

*verschieb*


----------



## The_S (7. Mrz 2008)

Wildcard hat gesagt.:
			
		

> > Ich habe die Bilder einfach mit Hilfe des Explorers in den Projektordner \bin hinein kopiert ( \bin\images ).



argh ... schon wieder etwas, was mir wegen ungenauem Lesen/überfliegen nicht aufgefallen ist. Ich sollte die Fragen besser lesen


----------



## robochris (7. Mrz 2008)

> Mit dem Explorer hast du im Eclipse Workspace gar nichts zu verändern, dadurch wird dein Workspace inkonsistent.[
> In 'bin' hast du sowieso nichts zu verändern, da Eclipse das Zeug nach belieben löschen und neu erstellen wird.
> Mach dir ein Verzeichnis z.B. images im Project Root./quote]
> 
> ...


----------



## Wildcard (7. Mrz 2008)

> Ich mache den Rechtsklick auf chEasyAsuro, aber es springt mir kein Punkt zum hinzufügen eines Ordners ins Auge ( wollte das Bild posten, geht hier im Forum wohl nur mit eigener url ).


new -> folder

Drag'n'Drop ist übrigens auch erlaubt. Es ist nur wichtig, das Eclipse bemerkt was da passiert. Sonst passen die Metadaten nicht mehr zum Realzustand im Dateisystem.



> Unter welchem Punkt? Project References?


Java Build Path


----------



## robochris (7. Mrz 2008)

Umpf, das war nicht einfach, aber jetzt habe ich den Ordner Eclipse-projektmässig richtig eingebunden. Jetzt stellt sich mir allerdings die Frage, welches die richtige Pfadangabe ist, damit das Programm das Bild auch findet.

vorher war das Bild in \bin\images\asuro.jpg

jetzt ist liegt das Bild ja noch eine Ebene höher und damit funktioniert

```
Icon bild = new ImageIcon(AsuroControl.class.getResource( "/images/asuro.jpg" ) );
```

nicht mehr. Verschieben des Image-Ordners per Drag & Drop in das Source-Verzeichnis geht auch nicht. 

Wildcard,kannst Du mir da weiterhelfen?

Gruß,
chris


----------



## Wildcard (7. Mrz 2008)

Wenn images selbst ein source folder ist, dann sollte asuro.jpg bzw. /asuro.jpg genügen.


----------



## robochris (7. Mrz 2008)

Super, es klappt!

asuro.jpg ging nicht, /asuro.jpg ging.

Besten Dank,
chris


----------

