wake-up-neo.com

Java in Eclipse: Wo lege ich Dateien auf das Dateisystem, das ich mit getResource laden möchte? (Z. B. Bilder für ein ImageIcon)

Ich weiß, dass die Datei dort sein muss, wo die getClass (). GetResource (Dateiname) sie finden kann, aber ich weiß nicht, wo das ist.

Ich bin sowohl daran interessiert, wo die Dateien im Dateisystem selbst abgelegt werden sollen, als auch, wie die Eclipse-Funktionalität zum Einrichten der Ressourcen verwendet wird.

50
Andrew Larned

In der Regel müssen Sie für Eclipse nur einen Ordner in Ihrem Quellcodeverzeichnis einrichten. Wenn das Verzeichnis, in dem sich Ihre Quelle befindet, beispielsweise /src lautet, können Sie einen /src/resources -Ordner erstellen, in dem Ihre Bilder/Dateien abgelegt werden. Anschließend führen Sie innerhalb Ihrer Klasse eine getResource("/resources/image.png"), um es abzurufen.

Sie können das Bild/die Datei auch in demselben Ordner/Paket wie die Klasse ablegen, die versucht, darauf zuzugreifen (Beispiel: Legen Sie die Datei image.png im Paket com.mycompany mit dem com.mycompany.Foo Klasse, die darauf zugreifen und getResource("image.png")) aufrufen muss, aber ich habe festgestellt, dass es einfacher ist, Ressourcen wie Bilder und andere Dateien in einem eigenen speziellen Verzeichnis außerhalb der Klassenordner zu speichern so umgehen.

In Eclipse werden bei jeder Erstellung die Dateien in diesem Ressourcenverzeichnis zusammen mit den kompilierten Klassen in Ihr Erstellungsverzeichnis kopiert.

Es ist wichtig zu beachten, dass, wenn Sie in Eclipse "Automatisch erstellen" aktiviert haben (wie die meisten Benutzer), alle Ressourcen in diesem Verzeichnis, die außerhalb von Eclipse geändert werden (dh Sie bearbeiten ein Bild mit einem Bildbearbeitungstool), die IDE erkennt diese Änderung möglicherweise nicht immer. Wenn Sie normalerweise den Projektordner aktualisieren, wird in diesen Situationen sichergestellt, dass die Datei im Build aktualisiert wird.

62
BCunningham

Sie können sie entweder im Ordner src neben Ihren Klassen ablegen oder Sie können einen neuen Quellordner für diesen Zweck erstellen (normalerweise resources), obwohl Sie sie im Code identisch finden.

Dann erreichen Sie sie mit getResource("/com/x/y/foo.png").

7
jodonnell