Java in Eclipse: dove inserisco i file sul filesystem che voglio caricare usando getResource? (es. immagini per un ImageIcon)

So che il file deve essere dove getClass (). GetResource (nomefile) può trovarlo, ma non so dove sia.

Mi interessa sia dove inserire i file sul filesystem stesso, sia come utilizzare le funzionalità di Eclipse per impostare le risorse.

Per Eclipse, in genere tutto ciò che devi fare è impostare una cartella da qualche parte all’interno della directory del codice sorgente. Ad esempio, se la directory che contiene il tuo sorgente è /src allora puoi creare una cartella /src/resources in cui inserire le tue immagini / file. Poi, all’interno della tua class, fai una getResource("/resources/image.png") a recuperarla.

È inoltre ansible posizionare l’immagine / il file all’interno della stessa cartella / pacchetto della class cercando di accedervi se lo si desidera (ad esempio: posizionare com.mycompany pacchetto com.mycompany con la class com.mycompany.Foo che deve accedere it e chiama getResource("image.png") ), ma ho scoperto che è più facile mantenere risorse come immagini e altri file nella propria directory speciale al di fuori delle cartelle di class – sono solo più facili da gestire in questo modo.

In Eclipse, ogni volta che si esegue una compilazione, i file all’interno di questa directory di risorse verranno copiati nella directory di build insieme alle classi compilate.

È importante notare che se in Eclipse (come la maggior parte delle persone) si triggers “Build Automatically” automaticamente tutte le risorse in questa directory che vengono modificate al di fuori di Eclipse (ovvero si modifica un’immagine utilizzando uno strumento di modifica delle immagini) che l’IDE potrebbe non rilevi sempre questo cambiamento. Solitamente facendo un aggiornamento sulla cartella del progetto si assicura che il file venga aggiornato nella build in queste situazioni.

Puoi metterli nella cartella src insieme alle tue classi, oppure puoi creare una nuova cartella di origine per lo scopo (di solito chiamate risorse ), anche se li troverai identicamente dal codice.

Poi li ottieni usando getResource("/com/x/y/foo.png") .