Почему getClass (). GetResourceAsStream (file.getAbsolutePath ()) выбрасывает исключение nullPointerException? - PullRequest
0 голосов
/ 11 декабря 2019

После того, как я искал решение для своей проблемы и прочитал похожие вопросы, которые гораздо более профессиональны, чем у меня, ... хорошо, я надеюсь, что вы обратили внимание на мою проблему, даже если она кажется простой! Я работаю над проектом, который открывает файлы с помощью FileChooser, а затем пытаюсь показать его на панели. Проблема в том, что getClass (). GetResourceAsStream (file.getAbsolutePath ()) возвращает значение null. Так что я могу напечатать путь и увидеть, что он верный, но я не могу использовать его при создании изображений. Часть моего кода:

    FileChooser fileChooser = new FileChooser();
    File file = fileChooser.showOpenDialog(stage);

...

     Image img = new Image(getClass().getResourceAsStream(file.getAbsolutePath());

Исключение составляет:

    Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Input stream must not be null ...

Я работаю в Ubuntu с помощью NetBeans. Я действительно оцениваю помогает. Благодаря.

1 Ответ

1 голос
/ 11 декабря 2019

Использовать ImageIO:

Image img = ImageIO.read(file);

getResourceAsStream требуется путь к пути класса. Поскольку ресурс может находиться в банке, его полный URI будет jar:file:/..../xyz.jar!/.... И File находится в файловой системе.

Нельзя смешивать их, только Path - это новое обобщение, разрешающее пути в нескольких "файловых" системах.

...