В исполняемом jar не работает принтер
Всем привет! У меня такая проблема - при сохранении проекта в исполняемый jar, теряется функция отправки изображений на печать. Однако в ide работает отлично. Суть проги следующая - при вводе номера артикула, автоматически распечатывается этикетка с нужным артикулом на термопринтере. При запуске jar появляется интерфейс, но после введения артикула ничего не происходит.
Файл пакую через Project Structure - Artifacts, Build Artifacts. Папка с готовыми файлами этикеток помечена как Resources Root.
Подскажите, от чего может теряться связь с принтером в jare?
String str = jTextField.getText();
String result = str + ".jpg";
DocFlavor flavor = DocFlavor.INPUT_STREAM.JPEG;
PrintService[] services = PrintServiceLookup.lookupPrintServices(flavor, null);
DocAttributeSet aset = new HashDocAttributeSet();
MediaSizeName mediaSizeName = MediaSize.findMedia(58,40,MediaPrintableArea.MM);
aset.add(mediaSizeName);
aset.add(new MediaPrintableArea(0, 0, 58, 40, MediaPrintableArea.MM));
aset.add(OrientationRequested.PORTRAIT);
try {
InputStream inputStream = new FileInputStream("resources/" + result);
Doc doc = new SimpleDoc(inputStream, flavor, aset);
if (services.length > 0) {
DocPrintJob job = services[0].createPrintJob();
job.print(doc, null);
}
} catch (Exception ex) {
ex.printStackTrace();
}
Решение найдено благодаря подсказке – Byb
Заменила строку со стримом на:
InputStream inputStream =
his.getClass().getClassLoader().getResourceAsStream(result);
Источник: Stack Overflow на русском