Wenn ich meinen Code als ausführbare JAR-Datei aus Eclipse exportiere, fehlen alle Dateien, die ich zum Erfassen ausgewählt habe, wie z. B. Schaltflächenbilder und andere Dateien, obwohl sie tatsächlich im JAR enthalten sind. Ich habe getClass().getResource
vor den Dateien hinzugefügt, aber wenn ich versuche, das JAR auszuführen, passiert nichts, irgendwelche Vorschläge?
Scheint so, als würdest du deine Sachen nicht in den richtigen Sinn bringen. Gehen Sie folgendermaßen vor, damit es funktioniert:
Project
in Project Explorer Tree
. New -> Source Folder
und gib dann% Name
an Source Folder
. Source Folder
hinzu. Wenn Sie beispielsweise Bilder hinzufügen möchten, erstellen Sie New Folder
, indem Sie diese Source Folder
through File System
. New Folder
als images
und kopieren Sie Ihre Bilder in dieses Folder
. Refresh
your Project
aus dem Projektexplorer, indem Sie mit der rechten Maustaste auf Ihr Projekt klicken. Hier können Sie Ihren hinzugefügten Inhalt jetzt nach der Aktualisierung sehen. Um nun darauf zuzugreifen, sagen Sie ein beliebiges Bild, das Sie verwenden werden.
%Vor%, die ein URL-Objekt zurückgibt. Erinnern Sie sich an die first forward slash
in diesem Fall, da auf das, was sich in Ihrem Quellordner befindet, mit Hilfe dessen einfacher zugegriffen wird. Wenn Sie nun Ihr Projekt ausführen, wird der Inhalt dieses Quellordners automatisch dem Ordner bin hinzugefügt und wenn Sie ein ausführbares JAR-Objekt erstellen, können Sie auf den Inhalt Ihres Quellordners zugreifen.
Der Pfad muss für die Ressource richtig sein.
Wenn sich "foo.gif" im Wurzelverzeichnis befindet, müssen Sie mit "/foo.gif" darauf verweisen.
Wenn das Programm nach einem vollständigen Bereinigen und Neuaufbau korrekt funktioniert, aber als ein Jar fehlschlägt, haben Sie höchstwahrscheinlich nicht die Dateien im Jar enthalten.
Versuchen Sie, die Ordner so in das Jar zu legen, wie Sie sie im Programm hatten. Fügen Sie dieselben Ressourcen an denselben Stellen ein, an denen Sie sie im Projekt haben. Das Jar wird auf dieselbe Weise wie in Ihrem Compiler referenziert.
Wie NICE cOw sagte, müssen Sie nur einen Quellordner in Ihrer Projekt Explorer-Struktur erstellen. Alle Dateien in diesem Ordner befinden sich im Stammprojektordner.
Um auf sie Bezug zu nehmen, müssen Sie den Namen Ihres Projekts schreiben. Slash den Dateinamen wie folgt:
getClass().getResource("ProjectName/image.extension");
Ich hoffe, das hilft!