web-dev-qa-db-fra.com

Obtenir une ressource en utilisant getResource ()

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

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

La structure de 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é beaucoup de chemins différents, mais je n'ai pas pu résoudre le problème. Un indice?

57
lbedogni
TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg");
  • barre oblique menant à la racine du classpath
  • slash au lieu de points dans le chemin
  • vous pouvez appeler getResource() directement sur la classe.
101
Bozho

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

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

si vous appelez depuis la méthode static, utilisez:

TestGameTable.class.getClassLoader().getResource("dice.jpg");
3
Binoy Babu

Une chose à garder à l'esprit est que le chemin approprié ici est le chemin relatif à l'emplacement du système de fichiers de votre classe ... dans votre cas, TestGameTable. class . Il n'est pas lié à l'emplacement du fichier TestGameTable. Java .
J'ai laissé une réponse plus détaillée ici ... où est la ressource réellement située

2
J.E.Tkaczyk