Получить ресурс, используя getResource()

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

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

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

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

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

Ответ 1

TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg");
  • ведущая косая черта для обозначения корня пути к классам
  • косые черты вместо точек в пути
  • вы можете вызвать getResource() непосредственно в классе.

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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