Получить ресурс с помощью getResource () - PullRequest
56 голосов
/ 07 апреля 2010

Мне нужно получить файл изображения ресурса в проекте Java. Что я делаю:

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

Структура каталогов следующая:

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

Дело в том, что я всегда получаю, поскольку файл не существует. Я пробовал много разных путей, но я не мог решить проблему. Любой намек?

Ответы [ 4 ]

97 голосов
/ 07 апреля 2010
TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg");
  • косая черта, обозначающая корень пути к классу
  • косые черты вместо точек на пути
  • Вы можете позвонить getResource() прямо на занятие.
13 голосов
/ 29 апреля 2015

Вместо явного написания имени класса вы можете использовать

this.getClass().getResource("/unibo/lsb/res/dice.jpg");
3 голосов
/ 19 июля 2015

если вы звоните из static метода, используйте:

TestGameTable.class.getClassLoader().getResource("dice.jpg");
2 голосов
/ 21 января 2017

Следует иметь в виду, что соответствующий путь - это путь относительно расположения файловой системы вашего класса ... в вашем случае TestGameTable. class . Он не связан с расположением TestGameTable. java файла.
Я оставил более подробный ответ здесь ... где находится ресурс на самом деле

...