Мой проект использует itext7 для создания файлов PDF. Когда я запускаю из затмения все работает отлично. Когда я упаковываю его как банку, все работает, пока я не дохожу до того, что хочу создать PDF. Я тогда получаю:
Исключение в потоке "Поток приложения JavaFX" com.itextpdf.io.IOException: исключение ввода-вывода.
.....
Причина: java.io.FileNotFoundException: C: \ Users \ puser \ eclipse-workspace \ Document \ target \ SE001-0.1.1-SNAPSHOT.jar \ img \ Safety.png (Системе не удается найти указанный путь )
Папка проекта сохраняет изображения на src/main/resources/img
. Как только баночка создана, она просто имеет /img
в корне. Это означает, что вы не можете просто указать прямой путь, потому что он меняется при создании банки. Изображения JavaFX отлично работают с ..
Image user = new Image(getClass().getResourceAsStream("/img/Document.png"));
Использование этого с itext7 не работает, потому что ImageDataFactory.create()
ищет байт [], и это входной поток.
Сейчас пытаюсь использовать:
Image safetyImage = new Image(ImageDataFactory.create(System.getProperty("user.dir") + "/img/Safety.png"));
Не работает, потому что банка не находится внутри пути.
Что я могу использовать, чтобы указать на файл изображения внутри банки и использовать его вместе с ним ext7?