Jar-Bilder

Hallo,
Ich hab ein Programm geschrieben, in dem Bilder (gifs) angezeigt werden. Wenn ich die in den WorkingFolder lege und das Programm dann mit BlueJ (Ein Java-Editor) starte, werden die Bilder richtig angezeigt.
Wenn ich jetzt aber eine Jar-Datei mit BlueJ daraus erstelle, greift er nicht auf die Bilder im Jar-Archiv zu, sondern will die Bilder auf der gleichen Ebene wie das Jar-Archiv liegen haben.
Ich möchte aber, dass mein Programm nur aus einer Jar-Datei besteht, weiß vielleicht jemand von euch, wie ich mein Programm dazu bringe, dass es auf die Bilder im Jar-Archiv zugreift?

Vielen Dank für eine Antwort
Manfred

Auch hallo.

Mit BlueJ müsste es doch möglich sein die gif Dateien der zu generierenden jar-Datei hinzuzufügen. Dann sollte die Geschichte unabhängig vom Pfad sein.

HTH
mfg M.L.

Hallo Manfred,

Wenn ich jetzt aber eine Jar-Datei mit BlueJ daraus erstelle,
greift er nicht auf die Bilder im Jar-Archiv zu, sondern will
die Bilder auf der gleichen Ebene wie das Jar-Archiv liegen
haben.

Die Bilder werden von dem Programm immer über den Dateipfad geladen. Wenn Du das Programm ändern kannst, dann lade die Bilder aus dem Klassenpfad. Also mit getClassLoader().getResource("/package/name/to/image.gif"). Das Bilder sollte dann im package package.name.to
Siehe dazu auch http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Cl…

Unter BlueJ vermute ich, dass die Bilder zwar auch im Klassenpfad liege, aber dieser als Dateisystem direkt vorliegt.

Gruß,
Frank

Hallo Frank,
vielen Dank für deine Antwort.
Du meintest irgendwas mit classLoader, leider habe ich noch nicht ganz verstanden, wie ich das einbringen soll.

In meinem Programm wurden die Bilder bisher so eingebracht:

Die Klasse heisst EditorExample und das Archiv soll später mal Mathe4.jar heißen. Ich hab nachgeschaut, also die Bilder sind auch im Jar-archiv enthalten, nur greift er so noch nicht drauf zu:

toolbar.add(createToolbarButton(„images\cut.gif“, „Ausschneiden“));
toolbar.add(createToolbarButton(„images\copy.gif“, „Kopieren“));
toolbar.add(createToolbarButton(„images\paste.gif“, „Einfügen“));

Könntest du mir vielleicht einen Code-Schnipsel zuschicken, wie ich die Bilder nun in das Programm lade?

Vielen Dank für deine Antwort
Manfred

Moin Manfred,

In Deinem Code greift Dein Javaprogramm logischerweise noch auf ein ungepacktes Archiv von Bildern zu.
Um die Bilder auch im Jar-File ersichtlich zu machen,
musst Du mit dem Classloader arbeiten, wie schon angesprochen:

ClassLoader.getSystemResource("/OrdnerZuDenBildern/MeinBild.jpg")

Dabei muss die Ordner-Hierarchie exakt übereinstimmen, mit vorangestelltem Slash.

Gruss,
Puni

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]