GetClass(). getResource() всегда возвращает null

Я пытаюсь установить URL-адрес изображения, которое находится в моей папке ресурсов в моей папке src. Это всегда установка URL на ноль. Изображение есть, и все названо правильно. В чем проблема? Спасибо!

Моя файловая структура:

  • sp1
    • ЦСИ
      • Ресурсы
        • 01.png

Вот мой код, где я пытаюсь установить URL для картинки:

this.setImagePath(getClass().getResource("/resources/01.png"));

И setImagePath делает это, я уверен, что это не проблема, потому что я следил за выполнением, и он устанавливает его равным нулю.

public final void setImagePath(URL imagePath) {
    this.imagePath = imagePath;
}

Решение

Я должен был очистить сборку и восстановить. Это сработало после этого исправления.

Ответ 1

Мне пришлось очистить сборку, а затем перестроить. Работает сейчас.

Ответ 2

Вам нужно проверить, что, как бы вы ни строили, файл изображения копируется туда, куда скомпилированы файлы классов. То есть если ваш класс com.foo.MyImageLoader и расположен в <build dir>/com/foo/MyImageLoader.class, тогда изображение должно быть в <build dir>/resources/01.png, чтобы вы могли загружать его таким образом.

Ответ 3

  1. убедитесь, что файл ресурса находится под вашим путем к классу. Например, проверьте, скомпилирован ли ваш модуль/проект в xxx.jar и сохранен ли он в папке "target"
  2. У меня также была эта проблема, когда я запускаю mvn install, не создается файл jar, поэтому в целевом файле jar не найден ресурс
  3. Причиной отсутствия сгенерированного jar является следующая конфигурация в pom.xml, удалите ее и перезапустите установку.

    <packaging>pom</packaging>
    

Ответ 4

Если вы используете JDeveloper, убедитесь, что у вас выбрано расширение файла, который вы хотите скопировать в папку классов для использования. Щелкните правой кнопкой мыши по проекту и выберите свойства проекта, чтобы перейти на этот экран.

JDeveloper

Ответ 5

Я бы предположил, что URL должен быть "01.png" не "/resources/01.png"