T
tuxedo
Gast
Hallo,
ich habe ein kleines Problem mit dem ausführen von Programmen via runtime.exec() ...
Es geht um folgendes:
Ich muss PDF Dateien drucken und die für mich in Frage kommende Lösung heisst zur Zeit drucken via Acrobat Kommandozeile.
Im Programm sieht das, zur Zeit noch testweise, so aus:
Problem dabei ist: Das Programm macht erst weiter wenn Acrobat geschlossen wurde. Aber es gibt keine Kommandozeiledie Acrobat nach der drucktätigkeit wieder schließt. Ist auch nich weiter schlimm. Acrobart ist ja nur minimiert in der Tasleiste. Das würde, bei einem erneuten Aufruf sogar Zeit sparen weils ja schon offen ist.
Was ich jetzt aber möchte ist das reine aufrufen von Acrobat. Das Programm soll dann einfach weitararbeiten können.
Geht aber nicht da Java scheinbar den Acrobat-Prozess noch unter seinen Fittichen hat.
Gibts ne Möglichkeit Java beizubringen dass es einfach das native Programm startet und diesen Prozess dann einfach dem OS überlässt?
Ich hab schon andere Sachen probiert. Das hier z.B.:
Bei kleinen Dokumenten geht das auch. Aber bei größeren ist das etwas waage. Man weiß ja nicht im vorraus wie lange man warten muss bis der Druck beim Spooler angekommen ist.
Desweiteren hätte das den Nachteil dass wenn ich ein und das selbe Dokument in nem Serienbrief 200mal haben will, ich 200mal Acrobat auf und wieder zumachen muss. Geschickter wäre es wenn acrobat offen bleibt und beim nächsten Aufruf der Kommandozeile die bereits offenen Acrobat-Instanz genutzt wird.
Wenn ich das in derEingabeaufforderung in Windows teste geht das nämlich so.... Nur Java will nicht so we ich will.
Any Ideas ?
ich habe ein kleines Problem mit dem ausführen von Programmen via runtime.exec() ...
Es geht um folgendes:
Ich muss PDF Dateien drucken und die für mich in Frage kommende Lösung heisst zur Zeit drucken via Acrobat Kommandozeile.
Im Programm sieht das, zur Zeit noch testweise, so aus:
Code:
String cmd="cmd.exe start /C \""+ConfigClient.ACROBATREADERPATH+"\" /p /h "+absPath+" ";
System.out.println(cmd);
Runtime.getRuntime().exec(cmd);
Problem dabei ist: Das Programm macht erst weiter wenn Acrobat geschlossen wurde. Aber es gibt keine Kommandozeiledie Acrobat nach der drucktätigkeit wieder schließt. Ist auch nich weiter schlimm. Acrobart ist ja nur minimiert in der Tasleiste. Das würde, bei einem erneuten Aufruf sogar Zeit sparen weils ja schon offen ist.
Was ich jetzt aber möchte ist das reine aufrufen von Acrobat. Das Programm soll dann einfach weitararbeiten können.
Geht aber nicht da Java scheinbar den Acrobat-Prozess noch unter seinen Fittichen hat.
Gibts ne Möglichkeit Java beizubringen dass es einfach das native Programm startet und diesen Prozess dann einfach dem OS überlässt?
Ich hab schon andere Sachen probiert. Das hier z.B.:
Code:
String cmd="cmd.exe start /C \""+ConfigClient.ACROBATREADERPATH+"\" /p /h "+absPath+" ";
System.out.println(cmd);
Process proc = Runtime.getRuntime().exec(cmd);
Thread.sleep(1000);
proc.destroy();
Bei kleinen Dokumenten geht das auch. Aber bei größeren ist das etwas waage. Man weiß ja nicht im vorraus wie lange man warten muss bis der Druck beim Spooler angekommen ist.
Desweiteren hätte das den Nachteil dass wenn ich ein und das selbe Dokument in nem Serienbrief 200mal haben will, ich 200mal Acrobat auf und wieder zumachen muss. Geschickter wäre es wenn acrobat offen bleibt und beim nächsten Aufruf der Kommandozeile die bereits offenen Acrobat-Instanz genutzt wird.
Wenn ich das in derEingabeaufforderung in Windows teste geht das nämlich so.... Nur Java will nicht so we ich will.
Any Ideas ?