Obter um recurso usando getResource ()

Eu preciso obter um arquivo de imagem de recurso em um projeto java. O que estou fazendo é:

URL url = TestGameTable.class.getClass(). getClassLoader().getResource("unibo.lsb.res/dice.jpg"); 

A estrutura do diretório é a seguinte:

 unibo/ lsb/ res/ dice.jpg test/ ..../ /* other packages */ 

O fato é que sempre recebo como o arquivo não existe. Eu tentei muitos caminhos diferentes, mas não consegui resolver o problema. Alguma dica?

 TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg"); 
  • barra inicial para denotar a raiz do caminho de class
  • corta em vez de pontos no caminho
  • você pode chamar getResource() diretamente na class.

Em vez de escrever explicitamente o nome da class, você poderia usar

 this.getClass().getResource("/unibo/lsb/res/dice.jpg"); 

Se você estiver chamando pelo método static , use:

 TestGameTable.class.getClassLoader().getResource("dice.jpg"); 

Uma coisa a ter em mente é que o caminho relevante aqui é o caminho relativo à localização do sistema de arquivos da sua class … no seu caso TestGameTable. class . Não está relacionado com a localização do TestGameTable. arquivo java .
Deixei uma resposta mais detalhada aqui … onde está o recurso realmente localizado