Входной поток не должен быть нулевым исключением в проекте gradle - PullRequest
0 голосов
/ 25 марта 2020

У меня есть MainClass

public class MainClass extends Application {

    @Override
        public void start(Stage primaryStage) {

            try{
                Image img = new Image(getClass().getResourceAsStream(".\\build\\resources\\main\\img\\h1.jpg"));
                System.out.println("ok");
            }
            catch(Exception ex){
                System.out.println(ex.getMessage());
            }
        }

    public static void main(String[] args) {
        launch(args);
    }
}

, и мое изображение находится в \build\resources\main\img\h1.jpg каталоге

файлы моего проекта:

my project files

Когда я запускаю проект, он дает Входной поток не должен быть нулевым исключением.

1 Ответ

2 голосов
/ 25 марта 2020

Пути к ресурсам не разделены \ Кроме того, они начинаются с ресурса root. В этом случае путь "/img/h1.jpg" должен помочь, если ваша среда IDE правильно включает ресурсы в пути к классам во время выполнения.

getResource (AsStream) не обращается к данным через путь к файлу; Данные могут быть вообще недоступны в виде файла, но могут быть записаны в виде файла JAR. Если вам нужно обратиться к файлу, который не включен в classpath, используйте функциональность File для преобразования в URI или используйте FileInputStream:

new Image(new File(".\\build\\resources\\main\\img\\h1.jpg").toURI().toString())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...