В jar не запаковались изображения (или он их не видит)

Изображение находится в папке src. Пока запускаю не jar всё работает, изображение считывается, но если запускаю jar, то изображение не загружается, null pointer exception.

try {

            URL resource = Sticker.class.getResource("\\transparentSticker.png");
            img = null;
            this.img = ImageIO.read(Paths.get(resource.toURI()).toFile());
            System.out.println("c");
        } catch (IOException | URISyntaxException e) {
            System.out.println("caught");
        }

Пробовала использовать intputStream, но когда пытаюсь, то даже не в jar не работает

      InputStream input = Sticker.class.getResourceAsStream("\\transparentSticker.png");
        if (input == null) {
          
            input = Sticker.class.getClassLoader().getResourceAsStream("\\transparentSticker.png");
        }
            try {
                img = ImageIO.read(input);
            } catch (IOException e) {
                e.printStackTrace();
            }

Как сделать так, чтобы изображение загружалось?


Сейчас код выглядит так, но всё равно не работает, FileSystemNotFoundException... Вариант "/transparentSticker.png" не помогает. "\resourses\transparentSticker.png" тоже. Так оно даже при запуске в Intellij-Idea не работает, не то что при запуске файла jar введите сюда описание изображения


Ответы (2 шт):

Автор решения: IlnurGibadullin
  1. Создайте в структуре проекта директорию resources и положите туда изображение.
  2. Замените \\transparentSticker.png на /transparentSticker.png.
→ Ссылка
Автор решения: Perfect Voyage
InputStream in = Sticker.class.getClassLoader().getResourceAsStream("transparentSticker.png");

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

И поток закрыть не забудьте )

→ Ссылка