2014-12-14 2 views
2

Я поместил битовую карту в/SRC/СМИ/и я пытаюсь получить доступ к нему в манере, которая будет работать на все операционные системы с:Как получить доступ к ресурсу Java в независимой платформе?

ImageIO.read(this.getClass().getResource("/media/title.bmp")); 

Однако я получаю исключение при попытке выполнить свой код :

Exception in thread "main" java.lang.IllegalArgumentException: input == null! 
    at javax.imageio.ImageIO.read(Unknown Source) 

Это означает, что this.getClass().getResource("/media/title.bmp") возвращает null. Можете ли вы помочь мне найти мою ошибку?

+0

Вы уверены, что изображение копируется в том же месте, что и ваши .class файлы (выходной каталог/файл jar и т. Д.)? – GreyBeardedGeek

+0

Правда! Файл не находится в папке bin. Я использую eclipse, как получить файл для копирования? –

+1

Получил! Вы хотите написать ответ? в eclipse, щелкните правой кнопкой мыши папку -> свойства и укажите нужные файлы. –

ответ

1

Изображение должно завершаться в том же месте, что и файлы .class (I.e. в пути к классам во время выполнения).

Большинство инструментов сборки, отличных от IDE, имеют способ сделать это. Например, в проекте Maven, поместите его в src/main/resources

Для строгой сборки на основе IDE у вашей IDE, вероятно, будет некоторый способ настроить это.