Я пытаюсь экспортировать изображение внутри моей runnable jar. После некоторых исследований я столкнулся с этим методом:
ImageIO.read(getClass().getClassLoader().getResource("image path"));
После нескольких ответов и просмотра API, я попытался это сам. Мой текущий каталог настроен следующим образом:
Это мой код:
cherryImg = ImageIO.read(getClass().getClassLoader().getResource("/res/cherry.png"));
который вызывается из исходного файла Snake.java.
Это сообщение об ошибке:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at cje.chris.edwards.snake.game.Snake.<init>(Snake.java:51)
at cje.chris.edwards.snake.game.Snake.main(Snake.java:156)
Snake.java:51
- это строка кода, опубликованная выше. Я понимаю, это потому, что он не может найти ресурс, что я делаю неправильно? Я добавил папку res в мой путь сборки.
Я также пробовал:
cherryImg = ImageIO.read(getClass().getClassLoader().getResource("res/cherry.png"));
Это приводит к тому же сообщению об ошибке.
Ответ:
cherryImg = ImageIO.read(getClass().getClassLoader().getResource("cherry.png"));
Благодарю.
Я думаю, что ваша проблема - это ведущий "/"
"/res/cherry.png"
Будет ли это абсолютным путем (от вашего корня вашего диска) не относительный путь от вашего начала от корня вашей банки
Сделать это "res/cherry.png"
должно работать
.jar
? Вы не указываете, как вы создаете.jar
, вероятно, его даже нет.