Я хочу прочитать изображения (.png
файлов) в моем проекте, и я хочу, чтобы это работало в файле runnable .jar
. Так что я написал этот маленький кусочек кода:Java ImageIO.read() возвращающий нуль
try {
InputStream in;
in = Loader.class.getClassLoader().getResourceAsStream("buttons.png");
System.out.println(in.read() + ", Reader: " + in);
BufferedImage img = ImageIO.read(in);
System.out.println(img.getHeight());
in.close();
} catch (IOException e) {
e.printStackTrace();
}
Когда я бегу, я получаю следующий результат:
137, Reader: [email protected]
Exception in thread "main" java.lang.NullPointerException
at test.Loader.load(Loader.java:21)
at test.MainTest.main(MainTest.java:6)
МОЯ MainTest
делает ничего, но работает этот код, так что я не буду включать его Вот.
Я уже тестировал, если InputStream
null
, как вы, возможно, заметили. Поскольку это, очевидно, не путь к моему файлу, должен быть прав. Мой вопрос: Почему ImageIO.read()
возвращается null
?
Проверьте, что 'buttons.png' находится в корневом каталоге пути класса Loader. Учитывать регистр. Проверьте файл .jar с помощью 7zip, WinZip и т.п. –
getResource (AsStream) возвращает null, когда ресурс не найден – MadProgrammer