Java ImageIOread (getClass (). GetResource ()) возвращает ноль

2

Линия

andImg = ImageIO.read(getClass().getResource("gate_and.png"));

не работает с

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: input == null!

Я использую Eclipse и в режиме навигации под папкой bin находится файл gate_and.png, предполагающий, что файл находится в пути сборки.

В представлении проводника пакета у меня есть

project/src/view/class - это класс, который имеет код выше.

и

проект/изображения/gate_and.png

Я щелкнул правой кнопкой мыши по папке проектa > путь сборки > источник ссылки, чтобы добавить папку изображений в качестве источника. Выполнение этого снова дает подтверждение msg, в котором говорится, что изображения уже находятся в источнике.

Я также попытался изменить gate_and.png на images/gate_and.png и /images/gate _and.png, но поскольку изображение gate_and.png находится в папке bin, я думаю, что оригинал верен.

Я новичок в этом, и я посмотрел на подобные вопросы, которые задавали много, но ни один из них не предоставил мне решение.

Заранее благодарим за помощь.

Matt

  • 1
    Используйте /gate_and.png .
Теги:
resources
image

1 ответ

3
Лучший ответ

Предполагая, что ваш класс находится в пакете view.random.name, тогда

getClass().getResource("gate_and.png")

будет искать ресурс в

/view/random/name/gate_and.png

относительно корня пути к классам. У вас, видимо, нет ресурса по этому имени.

Установив project/images в качестве записи пути построения, Eclipse будет включать все в него в путь к классам. Поэтому ваш ресурс появится в

/gate_and.png

Вы можете получить к нему доступ с помощью

getClass().getResource("/gate_and.png")

Обратите внимание на ведущий /, который означает начало поиска корня пути к классам, т.е. это абсолютный путь.

Все эти правила объясняются в javadoc.

  • 0
    Спасибо, я знал, что это будет что-то простое. Следует отметить, что на самом деле я пытался загрузить несколько изображений одновременно в конструкторе класса живописца. Любой, кто попробует это, должен быть уверен, что все пути и имена файлов написаны правильно, так как одна опечатка заставляла меня думать, что изображения не были найдены, хотя на самом деле они были написаны неправильно, но одно из них было написано неправильно. Действительно глупые ошибки. Тем не менее, спасибо за помощь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню