Obtenir une ressource en utilisant getResource ()

Je dois obtenir un fichier image de ressource dans un projet Java. Ce que je fais c’est:

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

La structure du répertoire est la suivante:

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

Le fait est que je reçois toujours car le fichier n’existe pas. J’ai essayé de nombreux chemins différents, mais je n’ai pas pu résoudre le problème. Un indice?

 TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg"); 
  • barre oblique pour indiquer la racine du classpath
  • des barres obliques au lieu de points dans le chemin
  • vous pouvez appeler getResource() directement sur la classe.

Au lieu d’écrire explicitement le nom de la classe, vous pouvez utiliser

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

Si vous appelez de static méthode static , utilisez:

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

Une chose à garder à l’esprit est que le chemin pertinent ici est le chemin relatif à l’emplacement du système de fichiers de votre classe … dans votre cas TestGameTable. classe Il n’est pas lié à l’emplacement de TestGameTable. fichier java .
J’ai laissé une réponse plus détaillée ici … où se trouve la ressource