Ответ 1
TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg");
- ведущая косая черта для обозначения корня пути к классам
- косые черты вместо точек в пути
- вы можете вызвать
getResource()
непосредственно в классе.
Мне нужно получить файл образа ресурса в проекте java. Что я делаю:
URL url = TestGameTable.class.getClass().
getClassLoader().getResource("unibo.lsb.res/dice.jpg");
Структура каталогов следующая:
unibo/
lsb/
res/
dice.jpg
test/
..../ /* other packages */
Дело в том, что я всегда получаю, поскольку файл не существует. Я пробовал много разных путей, но я не мог решить проблему. Любой намек?
TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg");
getResource()
непосредственно в классе.Вместо явного написания имени класса вы можете использовать
this.getClass().getResource("/unibo/lsb/res/dice.jpg");
если вы вызываете static
метод, используйте:
TestGameTable.class.getClassLoader().getResource("dice.jpg");
Следует иметь в виду, что соответствующий путь здесь - это путь относительно расположения файловой системы вашего класса... в вашем случае TestGameTable. class. Это не связано с расположением TestGameTable. java.
Я оставил более подробный ответ здесь... где фактически находится ресурс