# Java-Anwendung mit Bildern (JPG) verfügbar machen



## dweiner (28. Okt 2008)

Hallo, 

ich habe eine Java-Anwendung in Eclipse, bei der JPG´s eingefügt werden und möchte diese nun auch für Leute anwendbar machen, die von Java, Eclipse etc. keine Ahnung haben.

Zuerst habe ich versucht mit dem Plugin "fatjar" eine jar-Datei erstellen zu lassen. Die JPG's wurden allerdings nicht  angezeigt! Muss man den Ordner mit den JPG's in dem ClassPath angeben? Wenn ja, in welcher Form (Syntax etc.)?

Als zweites habe ich es über eine simple bat-Datei versucht. Auch hier habe ich versucht die JPG's über den ClassPath anzugeben - aber auch hier wurden beim Ablauf des Programms nicht angezeigt.
Hier mal der Inhalt meiner bat-Datei: 


```
java -classpath C:\Studienarbeit\src;C:\Studienarbeit\bin;C:\Studienarbeit\src\resources\images\Advice1.JPG;C:\Studienarbeit\lib\mysql-connector-java-5.0.8-bin.jar client.ExperimentClient
cmd
```

mySQL-connector-java funktioniert, das JPG wird aber nicht angezeigt!

Ordnerstruktur meines Projektes lautet:

Studienarbeit
-> src
--> client
--> server
--> resources
-----> images
--> lib
-> bin
...


Bitte um Rückantworten(ist echt dringend und bin grad am verzweifeln!!!!!!)
Danke im voraus!

MfG
Dominik


----------



## dweiner (28. Okt 2008)

Hi nochmal, 

bin mittlerweile im Forum über paar Threads gestoßen, die ein ähnliches Problem zum Thema haben - vor allem auf das Plugin fatjar bezogen. 
Bisher habe ich meine Bilder so deklariert:

```
private ImageIcon picture = new ImageIcon("src/resources/images/Test.jpg");
```

Im Forum wurde dagegen eher Deklarationen mit dem ClassLoader angepriesen, z.B.

```
private ImageIcon picture = new ImageIcon(this.getClass().getClassLoader().getResource("src/resources/images/Test.jpg"));
```

Dieser eine Vorschlag hat aber bei mir auch nicht funktioniert - trotzdem: bin ich da nur auf der richtigen Fährte bzw. worin liegt noch der Fehler? Was mache ich mit dem Classpath auf die Bilder beim fatjar-Plugin?

Bitte um Antworten!

Gruß
Dominik


----------



## Maeher (29. Okt 2008)

dweiner hat gesagt.:
			
		

> ```
> private ImageIcon picture = new ImageIcon(this.getClass().getClassLoader().getResource("src/resources/images/Test.jpg"));
> ```


So ähnlich kenne ich das auch. Normalerweiße wird aber in der jar aber alles *unterhalb* des ordners src (ggF in kompilierter Form) abgelegt. Das heißt das "src/" müsste meiner Meinung nach raus.


----------



## Wildcard (29. Okt 2008)

Ich verwende üblicherweise zwei source Folder. src/java und src/resources. Wenn es bei  dir ähnlich ist, muss das src/resources weg, die Bilder sprichst du über den Package Namen an "images/Test.jpg"


----------



## dweiner (29. Okt 2008)

Ok, danke schon mal für die Antworten - ich werde es nachher mal probieren....

Eine Frage vielleicht noch: Muss ich bei fatjar (oder auch in der bat-Datei) die Bilder dann nochmal explizit im classpath angeben oder nicht?

Gruß
Dominik


----------



## Wildcard (29. Okt 2008)

fatjar würde ich nicht benutzen. Der normale Eclipse Jar Export reicht völlig aus.
Wenn die Bilder in einem source Folder sind, werden sie normalerweise automatisch exportiert.
Du kannst das jar mit jedem Zip Programm entpacken, dann siehst du ja ob die Bilder enthalten sind, oder nicht.


----------



## dweiner (29. Okt 2008)

Wobei ich in meinem Programm noch einen jdbc-connector habe, den ich ja auch exportieren muss. Dafür ist doch aber fatjar besser geeignet, oder? 

Oder warum würdest du fatjar nicht unbedingt benutzen? Ich habs nun mal als PlugIn installiert und dachte es ist ein echt cooles Tool - hört sich zumindest so an, oder gibt es da irgendeinen Haken dabei.....


----------



## Wildcard (29. Okt 2008)

Der Haken ist, das du externe Artifakte nicht mehr 'as-is' benutzt, sondern neu verpackst und das erlaubt nicht jede Lizenz. Ausserdem ist das eine blöde Sache wenn du dein Programm mal in die Neuzeit führen willst und auf Webstart setzt. Du kannst dann nicht mehr partiell updaten, sondern musst immer einen ganzen Jar-Broken runterladen.


----------

