jochen...@gmail.com schrieb:
> Das sieht für mich nach einem Problem mit der JRE aus, da kann ich leider nicht helfen, sorry, der Gedanke unter Linux ein Linux-Java zu verwenden erscheint mir naheliegender.
Ja, das ist mir inzwischen auch gelungen. Es gibt dort lediglich das
Problem, dass Wine nach dem Start eines Linux-Prozesses die Kontrolle
darüber verliert, d.h. WaitForSingleObject kehrt sofort (erfolgreich)
zurück. Ich muss aber warten, bis Mustang fertig ist. Als Notbehelf
habe ich mir dafür ausgedacht "ich warte, bis N Sekunden lang nix mehr
nach stdout geschrieben wird, dann wird's schon fertig sein". Ist zwar
nicht so ganz sauber, funktioniert aber (und N muss man halt je nach
Rechnergeschwindigkeit justieren). Evtl. könnte man dauernd sowas wie
"start /unix /usr/bin/ps" aufrufen und in stdout nach "java" suchen
oder so, aber das wäre ja auch recht umständlich...
Apropos stdout/stderr: Ich bin da nicht ganz sicher, was den Exit Code
anbelangt (betrifft auch natives Windows): Wenn "validate" das Ergebnis
"invalid" hat, kriege ich den Exit Code -1 (oder so, jedenfalls nicht 0).
Wenn bei "extract" aber gar kein XML im PDF gefunden wird, kriege ich
Exit Code 0 (also eigentlich ja "Ok"), und lediglich in stderr steht
"NO ZUGFERD XML FOUND IN PDF FILE". Oder bei "combine", wenn das PDF
nicht /A-1 ist, auch wieder Exit Code 0 und nur in stderr "PDF-A VERSION
NOT SUPPORTED". Das betrifft auch manch andere Funktionen, so dass ich
(neben den obigen beiden Fällen) inzwischen dazu übergegangen bin, stderr
nach dem Wort "ERROR" zu durchsuchen (auch wenn der Exit Code anscheinend
0 ist).
Verliere ich da irgendwo unterwegs den Exit Code, oder kann es sein,
dass der auch bei diversen Fehlern 0 ist? Wie lässt sich ein Fehler
dann am besten erkennen? Dass irgendwo "ERROR" in stderr steht? Oder
dass überhaupt irgendwas in stderr steht (wobei man [warn] und [info]
dann wohl ignorieren müsste)?
Danke & Guten Rutsch,
Gruß Matthias.