Java in Eclipse: dove posso inserire i file nel filesystem che voglio caricare usando getResource? (ad es. immagini per un ImageIcon)

StackOverflow https://stackoverflow.com/questions/270197

Domanda

So che il file deve trovarsi dove getClass (). getResource (nome file) può trovarlo, ma non so dove sia.

Sono interessato sia a dove mettere i file sul filesystem stesso, sia a come utilizzare la funzionalità di Eclipse per impostare le risorse.

È stato utile?

Soluzione

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

Puoi anche posizionare l'immagine / file all'interno della stessa cartella / pacchetto della classe che prova ad accedervi, se lo desideri (esempio: posiziona image.png nel pacchetto com.mycompany con il Classe com.mycompany.Foo che deve accedervi e chiamare getResource (" image.png ") ), ma ho scoperto che è più facile conservare risorse come le immagini e altri file nella loro directory speciale al di fuori delle cartelle della classe: sono semplicemente più facili da gestire in questo modo.

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

È importante notare che se hai " Costruisci automaticamente " attivato in Eclipse (come la maggior parte delle persone) qualsiasi risorsa in questa directory che viene cambiata al di fuori di Eclipse (ovvero si modifica un'immagine utilizzando uno strumento di modifica delle immagini) che l'IDE potrebbe non rilevare sempre questa modifica. In genere, l'aggiornamento della cartella del progetto garantisce che il file venga aggiornato nella build in queste situazioni.

Altri suggerimenti

Puoi metterli nella cartella src insieme alle tue classi, oppure puoi creare una nuova cartella sorgente allo scopo (di solito chiamata risorse ), sebbene tu li localizzi identicamente dal codice.

Quindi puoi accedervi usando getResource (" /com/x/y/foo.png") .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top