Где начинаются относительные пути пакетов? - PullRequest
0 голосов
/ 03 февраля 2019

После долгой и трудной задачи загрузки изображений с использованием getResourceAsStream я решил организовать весь свой исходный код в пакеты в моей папке src.

С тех пор мой оригинальный метод получения файлов больше не работает.

Вот исходный класс, который я сделал:

package main;

import java.awt.image.BufferedImage;

import java.io.IOException;

import javax.imageio.ImageIO;

public class ResourceLoader {

    public static BufferedImage getImage(String uri) throws IOException {
        BufferedImage image = null; 

        image = ImageIO.read(ResourceLoader.class.getResource(uri));

        return image;

    }

}

Как уже упоминалось ранее, при входе в путь он работал на 100%:

"imgs/anims/testimage.png"

Отлично работал сэтот.imgs - это папка в исходной папке res.

1 Ответ

0 голосов
/ 03 февраля 2019

Мы нашли вашу проблему:

Вы использовали для загрузки всех ваших изображений относительно до ResourceLoader, которые находились в корневом пакете (обескуражены !, и хорошо, что вы сделали рефакторинг),

Но теперь (Вы переместились ResourceLoader с / на /main, и) все ваши URI указывают на "нирвану", так как нет imgs/... относительно /main.


Решение:

  1. рефакторинг /imgs в /main/imgs в соответствии с ResourceLoader

    Перемещение imgs в main/imgs.(если main (конечно!) нет, , пожалуйста, создайте его , это решение не требует никаких настроек кода / URI.)

  2. альтернативно используйте абсолютную адресацию

    См. ( все ) ваших изображений как /imgs/... (с символом косой черты (/)).

  3. в качестве альтернативы рефакторингResourceLoader обратно в /.

    Также не требуется никаких дополнительных настроек кода / URI.

...