Eclipse Runnable Jar mit Dateien

Diskutiere Runnable Jar mit Dateien im Allgemeine Java-Themen Bereich.
L

liann

Hallo, ich habe ein Spiel beendet und möchte es nun exportieren. Dazu habe ich eine Jar File gezogen und es per eingabeaufforderer aufgerufen. Es wurde auch aufgerufen, nur werden alle Bilder die ich in einem anderen folder gespeichert hatte, werden entweder nicht mit exportiert oder nicht geladen.
Der folder heißt "rsc" und um auf z.B. zuzugreifen, rufe ich folgenden Code auf:
Java:
File file = new File("rsc/img.png");
Das klappt auch so in eclipse.
Muss ich irgendwie anders auf die File zugreifen oder anders exportieren?

Danke im Voraus für Antworten.
 
mihe7

mihe7

Bei den Bildern handelt es sich um Ressourcen Deines Spiels? Und jetzt möchtest Du, dass die Ressourcen aus dem Jar geladen werden?

Die Ressourcen befinden sich dann im Classpath und über den musst Du die Bilder laden. Dazu kannst nicht nicht mehr File verwenden. In der Regel schreibst Du etwas wie getClass().getResource("/rsc/img.png") und erhältst eine URL zurück (mit getResourceAsStream bekommst Du dagegen einen InputStream).
 
L

liann

Also ich habe jetzt eine mini methode geschrieben:
Java:
    public static BufferedImage loadImg(String path) {
        try {
            return ImageIO.read(new FileManager().getClass().getResource(path));
        } catch (IOException e) {
            System.err.println("rsc \"" + path + "\" could not be loaded!");
            System.exit(0);
            return null;
        }
    }
allerdings wird eine IllegalArgumentException ausgeworfen: "input == null!". Ist das irgendwie falsch oder wie soll ich das machen?
 
L

liann

Also wenn der path genauso ist, wie bei einer File, dann ist er korrekt.
Java:
BufferedImage img = ImageIO.read(new File("rsc/img1.png")); /* funktioniert */
BufferedImage img = ImageIO.read(new FileManager().getClass().getResource("rsc/img1.png")); /* funktioniert nicht */
 
L

liann

Also wenn ich die zip öffne, sind dort einmal alle packages von Klassen, enums etc und dort sind auch die Bilder etc. Sie liegen allerdings in keinem Ordner, falls das irgendwas zu bedeuten hat.
 
L

LimDul

Wenn die Datei bild.png im Root des Jar liegt, ist der Pfad /bild.png
Liegt sie im Ordner a\b\bild.png dann wäre der Pfad /a/b/bild.png
 
Thema: 

Runnable Jar mit Dateien

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben