Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 20

Thema: Images im JAR

  1. #1
    Registrierter Benutzer
    Registriert seit
    12.11.2004
    Ort
    Berlin
    Beiträge
    32

    Images im JAR

    Hi
    Ich habe mir eine kleine Applikation geschrieben in der ich einige Images eingebaut habe. Solange wie ich das Programm nicht zu einem JAR packe läuft alles sehr gut. Packe ich es jedoch findet es kein Bild mehr. Lasse ich das Verzeichnis mit den Images außerhalb des JAR läufts wieder. Das ist aber nicht so gut, wenn neue Bilder hinzukommen und man vergisst diese mitzugeben.
    Muss ich die Pfade im Programm anpassen? Mir fällt langsam nichts mehr ein! Vielleicht hatte ja einer von euch ein ähnliches Problem.
    Danke

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Poste mal den Code den du zum Laden verwendest.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    17.09.2001
    Beiträge
    1.182

    Naja...

    Class.getResource gibt dir ne URL zurück, über wleche du eigentlich bilder erzeugen können müsstest....

  4. #4
    Registrierter Benutzer
    Registriert seit
    12.11.2004
    Ort
    Berlin
    Beiträge
    32
    Der Code zum Laden der Images ist Folgender:
    Code:
    JMenuItem exit = new JMenuItem("Beenden", new ImageIcon("Images\\fileclose.png"));
    Erstellen kann ich die Bilder, aber nicht wenn diese mit im JAR liegen.

  5. #5
    Registrierter Benutzer
    Registriert seit
    17.09.2001
    Beiträge
    1.182

    Hmm...

    einfach statt filenamen url übergeben, das hmmm, steht genau so oben
    Geändert von Lin728 (21-08-2017 um 15:21 Uhr)

  6. #6
    Registrierter Benutzer
    Registriert seit
    12.11.2004
    Ort
    Berlin
    Beiträge
    32
    Zitat Zitat von ceisserer
    Wer lesen kann, ist klar im Vorteil...
    Dann lese dir mal mein Problem richtig durch. Ich will nicht ein Bild von einer URL laden. Das Prog läuft lokal auf meinem Rechner. Das Bild liegt direkt in dem JAR-Packet. Welche URL sollte ich deiner Meinung nach angeben?

  7. #7
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Zitat Zitat von herzberg
    Dann lese dir mal mein Problem richtig durch. Ich will nicht ein Bild von einer URL laden. Das Prog läuft lokal auf meinem Rechner. Das Bild liegt direkt in dem JAR-Packet. Welche URL sollte ich deiner Meinung nach angeben?

    Eine URL ist ein Uniform Ressource Locator, d.h. die genaue Angabe zum Auffinden einer Ressource. Du scheinst das hier mit einer HTTP-URL gleichzusetzen, das ist aber falsch, denn eine URL kann auch ein anderes Protokoll beinhalten, wie etwa file:/ usf. Genauso gestaltet sich das ganze hier, denn es handelt sich nicht im HTTP, aber dennoch um eine URL:

    Du bekommst Dein Bild aus dem Jar folgendermaßen:

    Code:
    URL fooUrl = getClass().getResource("pics/foo.png");
    ImageIcon fooIcon = new ImageIcon(fooUrl);
    Das ImageIcon kannste dann auf beliebige Komponenten setzen.

    HTH

    fs111

  8. #8
    Registrierter Benutzer
    Registriert seit
    17.09.2001
    Beiträge
    1.182

    Jaja ;-)

    Drum heißt die Methode ja auch getResource.

    Wer javadocs lesen kann, hat gewonnen *g*

  9. #9
    Registrierter Benutzer
    Registriert seit
    12.11.2004
    Ort
    Berlin
    Beiträge
    32
    Entchuldigt Leute!
    Aber mit dem 1.Kommentar von ceisserer konnte ich echt nichts anfangen.

    Danke an alle

  10. #10
    Registrierter Benutzer
    Registriert seit
    12.11.2004
    Ort
    Berlin
    Beiträge
    32

    Post

    Zitat Zitat von fs111
    Code:
    URL fooUrl = getClass().getResource("pics/foo.png");
    ImageIcon fooIcon = new ImageIcon(fooUrl);
    fs111
    Danke fs111 für deinen Tip. Das funktioniert aber leider nicht, was du geschrieben hast. Es geht aber wunderbar mit:
    Code:
    URL url = getClass().getClassLoader().getSystemResource(path);
    if(url!=null){	
        ImageIcon icon = new ImageIcon(url);
    }
    Sollte das Bild jedoch nicht gefunden werden ist die URL Referenz null. Deshalb sollte man entweder die NullPointerException abfangen oder das ImageIcon erst garnicht erzeugen.

  11. #11
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Also unter JDK 1.4.2 geht das, welche Version hast Du denn?

    fs111
    ....::::Mein Blag::::....

  12. #12
    Registrierter Benutzer Avatar von RogerJFX
    Registriert seit
    13.04.2005
    Beiträge
    35

    Da fehlt auch ein '/'

    this.getClass().getResource("/res/image.png") geht so gut wie immer. Man sollte allerdings das führende '/' (hier vor "res") nicht vergessen. Da wird selten was gefunden.

  13. #13
    Registrierter Benutzer Avatar von Sym
    Registriert seit
    05.09.2002
    Ort
    Bremen
    Beiträge
    278
    Zitat Zitat von RogerJFX
    this.getClass().getResource("/res/image.png") geht so gut wie immer. Man sollte allerdings das führende '/' (hier vor "res") nicht vergessen. Da wird selten was gefunden.
    Das kommt ganz auf den Pfad drauf an. Wenn Du schon auf ein / angewiesen bist, dann bitte ./ damit es auch vernünftig klappt.

    Was hier wieder ausgegraben wurde...
    Denk mal drüber nach...

    Lars

    ACHTUNG: ersetze Linux durch GNU/Linux an den entsprechenden Stellen
    www.macuser.de, MSVC2005 Express und Qt, Qt/Mac installieren

  14. #14
    Registrierter Benutzer Avatar von RogerJFX
    Registriert seit
    13.04.2005
    Beiträge
    35

    Schnarch

    Falsch. Das mag vielleicht in HTML so sein. Hier nicht.


  15. #15
    Registrierter Benutzer Avatar von RogerJFX
    Registriert seit
    13.04.2005
    Beiträge
    35
    vielleicht ". /res/image.png". Also ein whitespace nach dem Punkt. Das mag sein. Kann ich mir aber kaum vorstellen.
    if you can't dazzle em with brillance, baffle em with bullshit

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •