ubuntuusers.de

Java und CUPS

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Fredo Team-Icon

Avatar von Fredo

Anmeldungsdatum:
27. Juni 2005

Beiträge: 5244

Wohnort: Bochum

Hallo!

Wie ich jetzt herausgefunden habe, scheint es grundsätzliche Probleme beim Drucken mit CUPS aus Java-Anwendungen zu geben. Dazu habe ich auch schon einen Workaround gefunden, der bei mir allerdings nicht richtig funktioniert.

Ursprünglich äußerte sich das Problem darin, dass bei allen Druckern im Java-Druckdialog der Status "Es werden keine Jobs angenommen" angezeigt wurde. Nun habe ich

* von /usr/lib/libcups.so.2 auf /usr/lib/libcups.so verlinkt
* in der /etc/cups/cupsd.conf die Zeile "Listen /var/run/cups/cups.sock" auskommentiert
* CUPS neu gestartet.

Das Ergebnis ist, dass die Drucker nun Jobs annehmen. Allerdings klappt das Drucken selbst noch nicht: CUPS-PDF gibt nur ein leeres Blatt raus, bei meinem Laserdrucker kommt gar nichts raus. In /var/log/cups/error_log findet sich dann ein solcher Eintrag:

E 22:38 +0200 [Job 238] No %%BoundingBox: comment in header!
E 22:38 +0200 [Job 238] No %%Pages: comment in header!
E 22:39 +0200 [Job 238] /configurationerror in --setpagedevice--
E 22:39 +0200 PID 7975 (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!

Hat da jemand einen Tipp? Ich bin dann auch gerne bereit, das im Wiki nachzutragen.

Liebe Grüße
Fredo

Fredo Team-Icon

(Themenstarter)
Avatar von Fredo

Anmeldungsdatum:
27. Juni 2005

Beiträge: 5244

Wohnort: Bochum

*push*

Hm, niemand? Das kann doch nicht so ungewöhnlich sein, aus Java heraus drucken zu wollen. Habe nur ich den Fehler, oder druckt sonst tatsächlich niemand aus Java-Anwendungen?

Wenn mir jemand sagt, welche Informationen ich noch geben soll, mache ich das natürlich gerne.

Liebe Grüße
Fredo

Fredo Team-Icon

(Themenstarter)
Avatar von Fredo

Anmeldungsdatum:
27. Juni 2005

Beiträge: 5244

Wohnort: Bochum

Also, aus Java5 heraus funktioniert es. Dann eben so.

Liebe Grüße
Fredo

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

Und nicht aus 1.4 oder nicht aus 1.6?

Meine letzten Druckexperimente waren auch nicht erfolgreich, sind aber auch ein paar Jahre her.
Da ich eh ungern drucke ...

Fredo Team-Icon

(Themenstarter)
Avatar von Fredo

Anmeldungsdatum:
27. Juni 2005

Beiträge: 5244

Wohnort: Bochum

user unknown hat geschrieben:

Und nicht aus 1.4 oder nicht aus 1.6?

1.4 habe ich nicht ausprobiert. Aus 1.6 funktioniert es jedenfalls nicht.

Irgendwie bin ich mit Sun's Java 6 sowieso auf Kriegsfuß. Ich finde die neu hinzugekommene Desktop-Integration (GTK-Themes) wirklich sehr begrüßenswert, aber dafür hakt es an zu vielen anderen Stellen. Derzeit stelle ich fast alle Anwendungen nach einiger Zeit wieder auf Java5 um, weil irgendwas nicht klappt. Die neueste Macke: Keine Tastatureingabe in manchen Dialogen. Ist mir im Hilfe-Fenster von JGR und im Suchfenster von jEdit aufgefallen... ☹

Liebe Grüße
Fredo

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

Dieses JGR: http://rosuda.org/JGR/index.shtml

Desktop-Themes gehen mir eigentlich irgendwo vorbei - daß da was anders ist als bei 1.5 ist mir gar nicht aufgefallen - ich habe aber bis vor kurzem auch fast ausschließlich 1.5 benutzt.

Fredo Team-Icon

(Themenstarter)
Avatar von Fredo

Anmeldungsdatum:
27. Juni 2005

Beiträge: 5244

Wohnort: Bochum

user unknown hat geschrieben:

Dieses JGR: http://rosuda.org/JGR/index.shtml

Desktop-Themes gehen mir eigentlich irgendwo vorbei - daß da was anders ist als bei 1.5 ist mir gar nicht aufgefallen - ich habe aber bis vor kurzem auch fast ausschließlich 1.5 benutzt.

Ja, genau, das JGR. Da ich es aber auch bei jEdit festgestellt habe, tippe ich mal auf irgend eine Inkompatibilität in Sun's Java6.

Naja, dann werde ich mich vorerst auch mit der 1.5 begnügen... Es funktioniert ja alles, sieht halt nur nicht so hübsch aus... 😉

Liebe Grüße
Fredo

Zippo1000

Anmeldungsdatum:
28. April 2006

Beiträge: 1

Kaempfe gerade mit genau demselben Problem.
Bei CUPS-PDF erhalten ich auch nur eine weisse Seite als Ausgabe, und der Druckjob zum Laserdrucker wird gestoppt mit obiger Fehlermeldung.
Das Problem bestand unter Java 1.5 auch noch nicht, nur leider hab ich jetzt unter Java6 entwickelt und will nur ungern wieder die voriger Version benutzen.
Hoffe, dass sich bald ne Loesung findet.

Gruss
Zippo

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

Der Workaround von Adam C (ein pstops-Wrapper) funktioniert bei mir: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6506286
Nicht schön, aber immerhin.

AndiXng

Anmeldungsdatum:
2. Januar 2007

Beiträge: 70

Wohnort: Schrobenhausen

Ich (Ubuntu 7.04, CUPS, Java 6) habe das selbe Problem. Alle Drucker sagen, sie nähmen keine Jobs an. Versuche ich es dennoch:

java.awt.print.PrinterException: Printer is not accepting job.
	at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1295)
	at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1246)
	at com.xenoage.score.print.PrintProcess.requestPrint(PrintProcess.java:63)
	[...]

Weiß schon jemand, ob die Problematik in Java 7 behoben ist?
Ich verstehe das überhaupt nicht. Es kann doch kein Mensch mit Java 6 und Linux drucken - warum wird das nicht schnellstens gemeldet und behoben? 😲

EDIT: Es klappt bei mir mit Java 5 aber genausowenig... Gleiches Problem:

java.awt.print.PrinterException: Printer is not accepting job.
	at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1230)
	at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1196)
	[...]

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

Ich meine für den Fehler ist Punkt 1 und 3 (oder 1 bis 3) von Fredo's Posting 1 hilfreich - also Zeile 5 + 7 oder 5 bis 7.

AndiXng

Anmeldungsdatum:
2. Januar 2007

Beiträge: 70

Wohnort: Schrobenhausen

Ja, danke für den Hinweis, das klappt tatsächlich soweit, dass Jobs angenommen werden, aber die Seite leer bleibt.

Ich muss als Programmierer natürlich aber auch immer an meine User denken, und die haben sicher wenig Lust, an Ihrem System rumzubasteln. Ist mir absolut unverständlich warum das nicht klappen will. Ist das eine Eigenheit von Ubuntu? (Warum heißt die .so eigentlich .so.2 ? Kann mir das jemand erklären bzw. gibts irgendwo nen Artikel zu der Benennungsstrategie in Ubuntu?).

Für den Workaround von Adam C habe ich leider zu wenig Erfahrung. Ich weiß nicht wirklich, was ich tun soll (z.B. "Note that the location of your pstops may be different (this is for RHEL 5)"... ähm... keine Ahnung!). Kann mir das jemand stichpunktartig erklären?

Danke ☺

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

Eine strukturierte Einführung in die Welt der .so - Files mit Tutorium habe ich auch nie besucht, sondern mir mit der Technik der Beobachtung eigene Erklärungen zusammengereimt.
Daher mögen sie unvollständig, teilweise falsch sein.

Szenario:
Ein Programm foo braucht eine Bibliothek bar (libbar.so).
Bar ist auf Versionsstand 1, und im System ist libbar.so.1.0 installiert, und es gibt ein paar Links:
libbar.so.1.0 → libbar.so.1
libbar.so.1 → libbar.so
Sehr schön alles.

Zwischenzeitlich wird libbar weiterentwickelt zu libbar.so.2.
Die Entwickler von foo haben aber besseres zu tun, als sich um die Entwicklung von libbar zu kümmern, und bekommen das nicht mit.
Außerdem ist libbar eigentlich auf allen Rechnern immer und überall installiert - daher bekommt niemand eine Fehlermeldung beim Installieren von foo.
Daß foo von bar abhängig ist ist womöglich gar nicht dokumentiert.

Vor ein paar Jahren ist es mir zum ersten Mal passiert, daß ein Programm nicht wollte, und sich über eine fehlende libXY beschwert hat.
libXY.so.Z war im System vorhanden, aber kein libXY.so - das Erzeugen des symbolischen Links genügte, um das Programm zum Laufen zu bringen.

Die Versionsnummer hinter dem .so. erlaubt es wohl, unterschiedliche, inkompatible Versionen von libXY gleichzeitig installiert zu haben.

Ob die Verwendung von .so.Z erst seit einiger Zeit üblich wurde weiß ich nicht.
Mir fiel das Vorhandensein von libXY.so.Z - libs bei fehlendem Link zu libXY.so jedenfalls erst in den letzten Jahren auf.
Womöglich gibt es eine Empfehlung nicht mehr zu Bibliotheken ohne Major-Versionsnummer zu linken.

Bislang habe ich mit selbstangelegten Links noch keine nachteiligen Erfahrungen gemacht.

Ich glaube nicht, daß es ein reines Ubuntu-Phänomen ist.
Allerdings habe ich Java direkt von Sun installiert, ohne Synaptic/Apt, da ich nicht weiß, wie man unterschiedliche Versionen (1.4, 1.5, 1.6) mit Synaptic installiert.
Ich brauche Java beruflich, und hatte noch nie Problme die Sun-Pakete unter Linux zu installieren - daher fühlte ich mich sicherer es so zu machen, wie ich es immer gemacht habe - auch wenn ich weiß, daß das selten eine gute Idee ist.
–-
Mit

slocate pstops

findest Du heraus, wo pstops ist.
Wenn es nur ein Vorkommen gibt, dann folgt daraus, daß es das ist, das verwendet wird.

Wenn Java dieses pstops aufruft, dann findet es - nach der Adam C'schen Operation - stattdessen den Wrapper, der die Postscriptdatei bearbeitet, und die problematische Zeile entfernt, und dann erst das alte pstops, das jetzt pstops.dist heißt, aufruft.
–-
Wer der eigentlcihe Übeltäter bei der ps-Frage ist weiß ich nicht.
Mein Drucker ist 17 Jahre alt, und versteht die fragliche Postscriptanweisung offenbar nicht.
Das kommt nach 17 Jahren raus?
Müßte das Filtern eigentlich der Druckertreiber erledigen?

Es sind ja wohl auch deutlich jüngere Drucker betroffen.

AndiXng

Anmeldungsdatum:
2. Januar 2007

Beiträge: 70

Wohnort: Schrobenhausen

Wow, danke für die ausführliche und aufschlussreiche Antwort ☺ Ich bin gar nicht auf die Idee gekommen, dass es sich hier um Versionsnummern handeln könnte, aber das klingt logisch.
Mich überraschts nur etwas (oder auch nicht), dass es in Linux scheinbar manchmal die gleiche "DLL-Hölle" gibt wie in Windows. Wobei die Lösung, verschiedene Versionen mit unterschiedlichem Namen zu haben, gar nicht so blöd ist.

Jetzt probier ich mal den Workaround aus, und schau, was rauskommt.

user unknown hat geschrieben:

Allerdings habe ich Java direkt von Sun installiert, ohne Synaptic/Apt, da ich nicht weiß, wie man unterschiedliche Versionen (1.4, 1.5, 1.6) mit Synaptic installiert.
Ich brauche Java beruflich, und hatte noch nie Problme die Sun-Pakete unter Linux zu installieren - daher fühlte ich mich sicherer es so zu machen, wie ich es immer gemacht habe - auch wenn ich weiß, daß das selten eine gute Idee ist.

Da hab ich jetzt den Zusammenhang nicht verstanden. Soll das heißen, dass Du mit dem Sun-Paket keinen Stress mit Druckern hast? Du hast ja den Link zum Workaround gepostet, aber was hat das jetzt mit Ubuntu- vs. Sun-Paket zu tun?

Offtopic: Mit Synaptic hab ich übrigens problemlos JDK 5 und 6 gleichzeitig installiert. In Eclipse kann ich ja nach Belieben wählen, und mit update-alternatives kann ich mir für den java-Befehl raussuchen ob standardmäßig 5 oder 6 verwendet werden soll.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

AndiXng hat geschrieben:

Da hab ich jetzt den Zusammenhang nicht verstanden. Soll das heißen, dass Du mit dem Sun-Paket keinen Stress mit Druckern hast?


Umgekehrt: Ich wollte nicht ausschließen, daß es bei ordentlicher Installation über Synaptic vielleicht dieses Problem nicht gibt.

Aber wie man an Dir sieht: Offenbar doch.

Antworten |