Wie schließt alle Bilder in der jar-Datei mit eclipse
Machte ich eine java-Anwendung und gebündelt alle Klassen in einer jar-Datei. Wenn ich das Projekt aus eclipse, meine Anwendung läuft erfolgreich. Aber wenn ich versuche zu laufen, meine .jar
Datei, bin ich nicht immer die icons, die durch meine Anwendung. In den code bekomme ich meine icons aus dem images-Ordner vorhanden, im Ordner Projekt. Wie kann ich diese image-Dateien, die dem Benutzer bei der Verwendung von einem Glas?
Ich bin laden das Bild in etwa so:
final public ImageIcon iReport=new ImageIcon("images/Report.png");
Habe ich auch schon versucht
final public ImageIcon iquit=new ImageIcon(getClass().getResource("images/quit.png"));
und
final public ImageIcon iquit=new ImageIcon(getClass().getResource("/images/quit.png"));
Aber dies führt zu einem Fehler:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
- Zeig uns etwas code? Wie sind Sie zu laden, dass es funktioniert manchmal, andere aber nicht?
- Sie sollten überprüfen, wie Sie den Zugriff auf die image-Ressourcen in Ihrem code. Stellen Sie sicher sein, eine relative url, zugänglich innerhalb der jar-Datei!
- Sie können einen Blick auf Klasse.getResourceAsStream()
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie brauchen, um es aus dem classpath, anstatt von der lokalen Festplatte die Datei-system.
Unter der Annahme, dass
images
ist eigentlich ein Paket, und dieses Paket ist innerhalb der gleichen GLAS wie die aktuelle Klasse, dann so:/
? Verstehen Sie, wie Sie mit relativen Pfaden arbeiten?images
?Dateien in jar-Dateien behandelt werden als "Ressourcen". Sie müssen Zugang zu Ihnen haben als classpath-Ressource, normale Datei-Zugriffsmethoden nicht dort arbeiten.
Versuchen Sie dies:
Ich weiß, das war vor langer Zeit gefragt, aber es hilft vielleicht anderen mit dem gleichen problem, wie bei mir. Ich war ja schon mit getClass().getResource("..."), aber die Ressource, die nicht das bekommen haben, exportiert .jar-Datei.
Ich löste das problem durch eine Aktualisierung des "Ressourcen" - Ordner, und jede seiner Unterordner.
100% funktioniert
Vergessen Sie nicht über "/" unter
path
für Bild.