Pfadangaben bei Ausführbarer Jar Datei

eiligerwind

Mitglied
Hallo Forengemeinde, irgendwie habe ich Probleme mit Pfadangaben zur Darstellung von ImageIcons...

aktuell habe ich eine Anwendung bei der ich für verschieden Buttons Icons hinterlegt habe. Die Icons hole ich mir beispielsweise so:

[CODE lang="java" title="Image"]dateiOeffnen.setIcon(new ImageIcon("icons/open24.gif"));[/CODE]

wenn ich dass ganze über Eclipes starte, werden die Icons auch angezeigt. Starte ich das Programm aber über eine ausführbare Jar Datei, bleiben die Icons leer....

mein Versuch das ganze folgenderweise anzupassen:
[CODE lang="java" title="Anpassung"]dateiOeffnen.setIcon(new ImageIcon(getClass().getResource("/src/editor/icons/open24.gif")));[/CODE]

quittiert Eclipse mit einen NullPointerException, sobald ich versuche das Programm über Eclipse als Java Anwendung zu starten, bzw. wenn ich über die Jar Datei starte bleiben die Icons leer...

Aktuell ist die Ordnerstruktur in Eclipse folgende:
2021-01-30 10_30_28-eclipse-workspace - Einheit_18_src_editor_Editor.java - Eclipse.png

habe schon die verschiedensten Pfadangaben probiert, immer mit dem gleichen Ergebnis 🙁... Wenn ich es richtig verstanden habe, muss ich wenn ich getClass().getRessource() nutze den relativen Pfad angeben... das wäre aus meiner Sicht src/editor/icons/open24.gif... oder liege ich da falsch? aber auch wenn ich editor/icons/"gif"...oder /icons/"gif"...etc versuche klappt es nicht.

hoffe ihr könnt mir da unter die Arme greifen. vielen Dank und VG
eiligerwind
 
Icons liegt doch gar nich unter src/editor... Wieso sollte es so ansprechbar sein.

Und warum ist dein .jar im src Ordner. Zudem sieht es so aus als wären deine Icons überhaupt nicht im Classpath
 
Hallo thecain, das stimmt die Icons liegen nicht im Ordner Src/editor...ich dachte ich müsste den Pfad von der Editor.jar Datei zu Icons darstellen 🤔 deshalb meine Annahme mit src/editor...liegen tun die Gifs im Ordner icons. aber auch mit der Pfadangabe icons/open24.gif...komme ich nicht zum gewünschten Ergebnis...
Wo sollte den der Jar Ordner liegen? Normalerweise würde ich den irgendwo in C:/programme ablegen...aber ich dachte ich mache es mir damit erstmal leichter mit der relativen Pfadangabe....
Das mit dem Classpath ist mir noch nicht klar, was Du damit meinst (bin ein Java RookieRookie 😉)

kleiner Nachtrag die Jar erstelle ich mit über Exportieren->ausführbare Jar Datei erstellen...hierbei kann ich keine Ordner auswählen...hatte irgendwo im Forum gelesen, dass man den Ordner icons auch auswählen müsste... auswählen des Ordeners geht nur, wenn ich statt ausführbare Jar Datei erstellen, den punkt jar Datei erstellen auswählen würde.
 
Zuletzt bearbeitet:
arghh...irgendeine Einstellung muss ich verändert haben in Eclipse...wenn ich jetzt eine ausführbare Jar Datei erstelle, erstellt die Eclipse immer als Zip??
 
das wäre aus meiner Sicht src/editor/icons/open24.gif... oder liege ich da falsch?
Du liegst falsch wenn du aus der jar Datei laden möchtest, lautet der Pfad "editor/icons/open24.gif"
Beim exportieren als jar wird der Ordner src unter Eclipse nicht angelegt.
mittels File erzeugt lautet er [CODE lang="java" highlight="1"]new File("./src/editor/icons/open24.gif");[/CODE]
 
Du musst den Ordner mit den Icons als Resource markieren (hier müsste schnell mal ein Eclipse-User zeigen wie es geht...), die Icons innerhalb des Orders kannst du dann als Resource laden: DieKlasseInDerDuDieBilderLädst.class.getResource("/icons/open24.gif").

Sowohl File als auch absolute Pfade als auch Pfade relativ zur jar sind da der falsche Weg.
 
@Mr. Brown... die Klasse in der ich die Bilder lade hat eine InnerClass (Listener)... wäre es dann die innere oder äußere Klasse die ich angebe?

also Editor.class.getRessource("/icons/open24.gif)

und ja es wäre toll, wenn ein versierter Eclipse Nutzer mir sagen könnte, wie ich die Folder icons als Ressource laden kann 🙂
 
die Klasse in der ich die Bilder lade hat eine InnerClass (Listener)... wäre es dann die innere oder äußere Klasse die ich angebe?

also Editor.class.getRessource("/icons/open24.gif)
Das ist in dem Fall egal, wichtig ist nur, dass es einer feste Angabe deiner Klassen in einem deiner Packages ist. Mit getClass kann das zur Laufzeit eine andere Klasse sein.

und ja es wäre toll, wenn ein versierter Eclipse Nutzer mir sagen könnte, wie ich die Folder icons als Ressource laden kann 🙂
Das sieht in etwa passend aus: https://stackoverflow.com/a/27935114
(bis zu dem Teil mit "add 'my-resource.txt' file ...", stattdessen musst du deinen icons-Ordner dann dorthin verschieben)
 

Zurück
Oben