В приведенном ниже примере кода, когда я тестирую код в Eclipse, он работает нормально. Тем не менее, когда я экспортировать файл банку и проверить его через командную строку, он выдает ошибку: IIOException: Can't read input file!
Экспортированный файл Jar не будет читать файл внутри jar
private BufferedImage img = null;
private String imgSource;
if (img == null)
{
try {
URL url = getClass().getResource("Images/questionMark.png");
System.out.println(url.getPath());
/* This prints: file:/C:/Users/Keno/Documents/javaFile.jar!/javaFile/Images/questionMark.png */
File file = new File(url.getPath());
img = ImageIO.read(file);
imgSource = file.getName();
} catch (IOException e) {
e.printStackTrace();
}
}
Файл Я хочу, чтобы находится в папке изображения, которая находится внутри javaFile
пакета. Я заметил одну вещь, которая может указывать на проблему.
- В заявлении на печать у меня есть знак восклицательного знака в конце раздела javaFile.jar. Это верно? Может ли это указать на проблему с файлом или структурой?
Кроме того, только в случае, если кто-то есть лучшее предложение о том, как я должен загрузить файл, я расскажу вам о своих намерениях. Я хотел бы загрузить файл из относительного местоположения (папка «Изображения») в банке. Я хотел бы отобразить его (уже сделано в моем фактическом коде), а также сохранить местоположение, которое будет передано позже, на другую функцию (также сделанное).
попробовать с GetClass(). GetResourceAsStream –
@ oliv37 Это означало бы, что я должен включить URL в InputStream. Должен ли я затем преобразовать его в файл? –
ImageIO.read (inputStream) –