Java und CUPS - das Leiden hat ein Ende

Ich war es leid, dass ich trotz aktuellem Java und CUPS auf meinem Debian Sid immer noch nicht aus Java heraus drucken konnte. Java meinte einfach die ganze Zeit "es werden keine Jobs angenommen" von meinem Drucker.
Zunächst hieß es, es ist ein Bug in Java und der kann nicht auf Drucker mit Sonderzeichen im Namen drucken, aber mein HPLJ4000N hat KEINE Sonderzeichen im Namen.

Dann stieß ich beim FedoraBlog auf einen Artikel, dass Java auch unter Fedora nicht druckt man als Würgaround aber auf CUPS 1.2.1 downgraden könnte. Fand ich eigentlich nicht so pralle die Lösung, vorallem weil hier mittlerweile CUPS 1.2.7 rennt.

Aber dann kam die Erlösung tief im BTS von Sun: Bug Nummer 6500903 mit einem "einfachem" Würgaround:

ln -s /usr/lib/libcups.so.2 /usr/lib/libcups.so

$ CUPS_SERVER=localhost java ...

Nach Schritt 1 funktioniert das Drucken in Java gänzlich nicht mehr, er findet keinen Druck-Service, aber nachdem man seine Java Anwendung mit der Environment-Variable CUPS_SERVER auf localhost gestartet hat, nehmen die Drucker plötzlich Aufträge entgegen.

Bis jetzt habe ich auch keine Nebenwirkungen bei anderen Programmen durch den Link in /usr/lib/libcups.so feststellen können, deswegen kann ich damit leben und kann nun endlich direkt aus BlueJ meinen Code ausdrucken, ohne ihn zuerst in GVim kopieren zu müssen.

UPDATE:
Auf fedorablog.de hab ich einen weiteren Würgaround gefunden, der mir sogar besser gefällt.
Statt CUPS_SERVER an Java mitzugeben, kann man auch einfach das
Listen /var/run/cups/cups.sock
in der /etc/cups/cupsd.conf auskommentieren, damit CUPS nur noch auf localhost:631 und nicht mehr auf dem Socket lauscht. Et Voila - es druckt.

Comments