Вы могли бы хотеть посмотреть на Liquibase ( http://www.liquibase.org/ ). Даже если Вы не используете сам инструмент, он обрабатывает понятие управления изменениями базы данных или осуществляющий рефакторинг вполне прилично.
Наконец-то я нашел способ сделать это, используя jipsi
:
URI printerURI = new URI("ipp://SERVER:631/printers/PRINTER_NAME");
IppPrintService svc = new IppPrintService(printerURI);
InputStream stream = new BufferedInputStream(new FileInputStream("image.epl"));
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc myDoc = new SimpleDoc(stream, flavor, null);
DocPrintJob job = svc.createPrintJob();
job.print(myDoc, null);
Должен признаться, я разочарован тем, что мне приходится использовать стороннюю библиотеку сделать что-то столь простое, как печать на конкретном принтере.
UPDATE
DR указывает в комментариях , что у jipsi есть новый дом и новое имя.
Cups4J - хорошая альтернатива, но, как следует из названия, она может работать некорректно, если адресатом не является сервер CUPS. У меня были хорошие результаты при использовании Cups4J для печати непосредственно на термопринтере Zebra.
Я не думаю, что вы можете получить принтер так, как хотели бы (я думаю, что механизм Java Print предшествует IPP).
Однако, если я правильно помню, вы сможете для локального рендеринга задания на печать и последующей отправки байтов выходного потока на целевой сервер CUPS «вручную». Было бы вам "достаточно"?