PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : export *.jar File in Eclipse



hacker
07.02.2006, 16:40
Hallo,

Muss man immer wenn man eine ausführende *.jar Datei erstellt die ganzen Bilder, Sounds etc. mitgeben oder gibt es auch eine Möglichkeit die ganzen Dateien mit in die *.jar Datei zu packen, dass man wirklich nur die eine Datei weitergibt?

Gruss Hacker

linux_80
07.02.2006, 18:41
Hallo,
wenn die zusätzlichen Dateien (Grafiken usw.) vorher schon im gleichen Verzeichnis sind wie die Javaklassen, sollten sie auch im Jarfile landen !

hacker
07.02.2006, 19:16
Das tun sie aber in meim Fall nicht.

Ich mach

File->Export->Jar File. Dann wähl ich mein Package aus, was ich exportieren will. Als Einstellung hab ich dann "Export generated class files and resources".

Dann geb ich den Pfad an wo die '.jar Datei hin soll. Dann kommt bei mir als Einstellung "Compress the contents of the jar file". Dann wähl ich nur noch die Main Class aus.

Wenn ich das so mach, kommen bei mir die Bilder aber nicht in die jar Datei.

btw. Als Pfadangabe der Bilder im Code muss ich nix angeben oder? bis auf den Bildnamen..+Endung..^^ aber so von wegen Pfad nichts oder?

Gruss Hacker

linux_80
07.02.2006, 19:50
Was im JAR-file ist kannst du ganz leicht mit Winzip, oder welches OS grad da ist, prüfen, denn das JAR ist nur eine Zipdatei.
Wenn die Dateien drin sind, liegts am Pfad.

Bei getResource zB. hab ich keinen Pfad angegeben, und die Grafik wird trotzdem gefunden, diese liegt im gleichen Ordner wie die Klasse.

hacker
07.02.2006, 20:09
hmmm bei mir landen die Bilder da nicht drin...da sind immer nur die 3 .class Dateien zu finden. Die Bilder liegen aber im Workspace im Ordner wo auch die Oberfläche.class zu finden ist.

Woran kann das liegen?


/edit

Es klappt nun. Der Fehler war, dass ich meine Bilder immer über den Browser in den Ordner reinkopiert habe. Aber anscheinend erkennt das Eclipse nicht. Nachdem ich die Bilder über Eclipse in das Package geschoben habe, funktioniert nun alles..:)

Danke für die Hilfe.

Gruss Hacker

hacker
07.02.2006, 20:18
Ich war wohl vorschnell. Die Bilder sind zwar drin, werden aber nicht angezeigt.

linux_80
07.02.2006, 20:23
Wie greifst du auf die Dateien zu,
es geht zumindest nicht mehr so, wie wenn die wirklich im Dateisystem wären !?

hacker
07.02.2006, 20:28
Erst hab ich die Bilder über den Browser von Windows einfach in den Ordner reinkopiert. Dann wollt ich die Bilder mal in das Package über Eclipse reinkopieren. Dann kam da wären die schon drin, obwohl es mir in Eclipse nichts angezeigt hat. Dann hab ich die nochmal gelöscht und neu über Eclipse eingefügt. Nun wurden sie auch in Eclipse angezeigt, in der Dateistruktur.

Nach dem Exportieren sind die Dateien jetzt drin. In dem gleichen Ordner wie die class Dateien. Trotzdem werden keine Bilder angezeigt (im Programm).

Im Code muss ich als Bildpfad doch nix angeben oder? Liegen ja beide im gleichen Verzeichnis...

linux_80
07.02.2006, 20:59
Ja, das passt schon,
aber wie greifst Du vom Programm aus auf die Dateien zu.
Also wie werden die geladen oder so ?

Schau Dir mal genaueres zu .getResource und auch der Klasse Toolkit an.
Mit File kommt man da nicht weit in 'nem JAR !

So hol ich mir ein Bild um das ProgrammIcon zu setzen:

setIconImage(Toolkit.getDefaultToolkit().createIma ge(MeinFrame1.class.getResource("Bild.gif")));

hacker
07.02.2006, 21:16
Bei mir geht es um ein Bild im Lable:

lblBild.setIcon(new ImageIcon("Logo.jpg"));

So mach ich das...funktioniert auch, wenn ich den ganzen Pfad ausschreib...also z.B "C:/Programme/Bilder/Logo.jpg".

hmmm

ein ratloser Hacker

hacker
08.02.2006, 15:47
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("bild.jpg")));

so funktioniert es. Danke für den Tipp mit getResources...aber ich frag mich immer noch, warum es geht wenn ich das ohne getResources mach und den ganzen Pfad angeb....

Gruss Hacker

linux_80
08.02.2006, 18:44
Wenn die Datei dort abgelegt ist, funktionert es auch mit der vollen Pfadangabe, dann ist es aber nicht die Datei aus der JAR-Datei !

Wenn man die Jar-Datei weitergibt, gehts spätestens nimmer.