Dateien in JAR packen

Hinde

Mitglied
Hi,

ich möchte Dateien, die mein Java Programm benötigt direkt in mein JAR packen,
um das ganze eben möglichst kompakt zu halten.

Ich habe irgendwo gelesen, dass es so irgendwie funktionieren müsste:
Java:
File dir = new File(ClassLoader.getSystemClassLoader().getResource("files/pics/crops/.").getFile());

Es geht auch, wenn ich aus Eclipse heraus starte, aber wenn ich als JAR exportiere
und dann wieder starte bekomme ich ne NullpointerException.

Struktur meiner JAR:
bgw06lif79scg028p.png


Wie komme ich zB an den Pfad zu dem Ordner Crops?
Danke schonmal.

Edit:
Java:
File dir = new File(ClassLoader.getSystemResource("files/pics/crops/.").getFile());
// und auch
File dir = new File(this.getClass().getResource("/files/pics/crops/.").getFile());
Funktioniert ebenfalls nur in Eclipse, jedoch nicht wenn es als JAR gepackt ist (NullpointerException).
Mache ich eventuell beim exportieren etwas falsch?
 
Zuletzt bearbeitet:
Ich verwende doch getResource() und erstelle dabei mit der URL ein File.

Ich habe gerade herausgefunden, dass ich schon bei
Java:
System.out.println(this.getClass().getResource("/files/pics/crops/."));
ein null bekomme.
Das Problem ist also erstmal, dass man getResource() nicht auf einen Ordner anwenden kann, wie ich das möchte.

Aber auch direkt auf eine Datei zugreifen funktioniert nicht:

Java:
System.out.println(ClassLoader.getSystemClassLoader().getResource("files/pics/icons/harvest.gif").getFile());
// Ausgabe in Console:
// file:/C:/Users/Hinde/Documents/EclipseWorkspace/Projekt/myJAR.jar!/files/pics/icons/harvest.gif
ImageIcon icon1 = new ImageIcon(ClassLoader.getSystemClassLoader().getResource("files/pics/icons/harvest.gif").getFile(), "Icon1");
// Icon wird später geadded, aber in der GUI dann nicht angezeigt.

Oder liegt das an dem toFile()?
Aus dem Link von Marco13 werde ich leider nicht schlau...
 
Zuletzt bearbeitet:
Ok danke für deine Hilfe, aber ich glaube das Thema hat sich erledigt.
Ich wollte eben alles in einem haben, dass ich das Programm einfach updaten kann,
aber ich denke ich mache es jetzt mit einem ZIP Archiv, dass ich dann eben entpacke.

Das Thema ist erledigt, aber nicht gelöst.
 

Neue Themen


Zurück
Oben