Как установить правильный путь к изображению в Java? - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь загрузить и нарисовать его с помощью метода рисования в Java независимо от того, как я пишу путь, он всегда показывает исключение

java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)

У меня есть изображение в той же папке с классом

Это строка, в которую я загружаю изображение в

    Image img = ImageIO.read(getClass().getResourceAsStream("pepsi.png"));

Ответы [ 3 ]

0 голосов
/ 19 июня 2019

Попробуйте проверить это так.

Если файл находится в java-файле, а мой класс в пакете с именем

net.ilightwas.MyClass

должно быть как

Image img = ImageIO.read(getClass().getClassLoader().getResourceAsStream("net/ilightwas/pepsi.png"));

Это, вероятно, поможет вам найти ошибку.

0 голосов
/ 19 июня 2019

Посмотрите учебник MKYong .Он показывает вам, где разместить изображение.Если вы хотите, чтобы изображение загружалось как «ресурс», вы должны поместить его в папку ресурсов.Структура вашего проекта будет выглядеть следующим образом:

MyProject
    +--src
        +--main
            +--java
            |    +-com
            |       +--me
            |           +--Main.java
            +--resources
                 +--pepsi.jpg

, а в вашем классе Main вы выполните этот фрагмент:

try {
    Image img= ImageIO.read(Main.class.getClassLoader().getResourceAsStream("pepsi.jpg"));
    System.out.println(img.getWidth(null));  //this is just a test, when it prints out the width of your image, you have the right file loaded 
} catch (IOException ex) {
    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
0 голосов
/ 19 июня 2019

проверьте вашу выходную папку ... файл 'pepsi.png' (возможно, чувствителен к регистру) должен находиться в той же папке, что и файл класса, из которого вы звоните

...