. Метод getResourceAsStream -method возвращает null при запуске исполняемого банку в каталоге, который заканчивается восклицательным знаком.Невозможно открыть ресурсы в каталогах, заканчивающихся восклицательным знаком (!)
В следующем примере, у меня есть проект ECLIPSE следующую структуру каталогов:
src\ (Source Folder)
main\ (Package)
Main.java
res\ (Source Folder)
images\
Logo.png
Я читал Logo.png следующим образом:
public static void main(String[] args) throws IOException {
try (InputStream is = Main.class.getClassLoader().getResourceAsStream("images/Logo.png")) {
Image image = ImageIO.read(is);
System.out.println(image);
}
}
Смотрите приложение для 2 теста случаев. Во-первых, исполняемый банк запускается из каталога «D: \ test123! @ #» Без проблем. Во-вторых, исполняемый банк запускается из каталога «D: \ test123! @ # !!!», с проблемами.
Не указаны ли каталоги, заканчивающиеся восклицательным знаком? Код неправильный?
Заранее спасибо.
Есть ли причина, вы можете создавать/использовать каталоги с обычными именами? – mtk
Вы уверены, что вы поставили равные банки в оба каталога? – Andremoniy
Пользователи могут выполнять мое приложение из любого места в своей файловой системе. Каталоги с восклицательными знаками поддерживаются Windows. – Velth