Java no Eclipse: Onde posso colocar os arquivos no sistema de arquivos que deseja carregar usando getResource? (por exemplo, imagens para uma ImageIcon)
-
06-07-2019 - |
Pergunta
Eu sei que as necessidades de arquivo para ser onde o getClass (). GetResource (filename) pode encontrá-lo, mas eu não sei onde é.
Eu estou interessado tanto em onde colocar os arquivos no próprio sistema de arquivos, e como ir sobre como utilizar a funcionalidade do Eclipse para configurar os recursos.
Solução
Para Eclipse, normalmente tudo que você precisa fazer é criar um lugar pasta dentro do seu diretório de código-fonte. Por exemplo, se o diretório que contém sua fonte é /src
então você pode criar uma pasta /src/resources
para colocar suas imagens / arquivos. Então, dentro de sua classe você fizer uma getResource("/resources/image.png")
para recuperá-lo.
Você também pode colocar a imagem / arquivo dentro da mesma pasta / pacote como a classe tentando acessá-lo se desejar (exemplo: colocar o image.png no pacote com.mycompany
com a classe com.mycompany.Foo
que precisa acessá-lo e chamada getResource("image.png")
), mas eu descobri que é mais fácil de manter recursos como imagens e outros arquivos em seu próprio fora diretório especial das pastas de classe - eles são apenas mais fáceis de gerenciar que maneira
Em Eclipse, sempre que você faz uma compilação, os arquivos dentro deste diretório de recursos serão copiadas para sua diretório de construção, juntamente com suas classes compiladas.
É importante notar que, se você tem "criar automaticamente" ativada no Eclipse (como a maioria das pessoas fazem) quaisquer recursos neste diretório que se mudaram fora do Eclipse (ou seja, você editar uma imagem usando uma imagem editando ferramenta) que o IDE nem sempre pode detectar esta mudança. Normalmente fazer uma atualização na pasta do projeto irá garantir que o arquivo é atualizado na construção nessas situações.
Outras dicas
Você pode colocá-los na pasta src ao lado de suas classes, ou você pode criar uma nova pasta de origem para o efeito (normalmente chamado recursos ), mas você vai encontrá-los de forma idêntica a partir do código.
Em seguida, você chegar a eles usando getResource("/com/x/y/foo.png")
.