cmd messages in Echtzeit auslesen

webweasel

Grünschnabel
Hallo miteinander,

Zwecks Parametrisierung möchte ich eine Anwendung fremdstarten.
Tue ich das mittels cmd bekomme ich während der Laufzeit entsprechende Statusmeldungen zurück.

z.B. so:

PrintNet T Designer Console 6.2.54
Status message 0881:Reading config file
...
Status message 0596:Imposition script preprocessing started.
Complete run time: 0:00:02.813

Das gleiche Ergebnis hätte ich gerne über Java erreicht. Jedoch bekomme ich die Meldungen hier nicht step by step zurück sondern alle auf einmal wenn die Anwendung komplett durchgelaufen ist. Kennt jemand eine Möglichkeit da ein bisschen Dynamik rein zu bekommen? Wäre super. Die geballten Statusmesages aufeinmal erschlagen mich total.

Hier mein verwendeter Quellcode:

Code:
try 
{    		
   Process proc = Runtime.getRuntime().exec("\\\\192.168.0.9\\C\\PNetTC.exe "+ params);
   Scanner sc = new Scanner(proc.getInputStream());
   StringWriter sw = new StringWriter();
   PrintWriter pw   = new PrintWriter(sw);
   while(sc.hasNextLine())
   {
      pw.println(sc.nextLine());
   }
   System.out.println(sw);		    
}
catch(Exception e){System.err.println(e.toString());}
 
Es ist ja auch kein Wunder, dass bei dir die Ausgabe als Komplettpacket ausgegeben wird, so steht es ja auch in deinem Code.

So sollte das passieren, was du dir vorstellst. Allerdings noch nicht getestet.
Java:
try {
	Process proc = Runtime.getRuntime().exec("\\\\192.168.0.9\\C\\PNetTC.exe "+ params);
	Scanner sc = new Scanner(proc.getInputStream());
	while(sc.hasNextLine()) {
		System.out.println(sc.nextLine());
	}
} catch(Exception e) {
	System.err.println(e.toString());
}
 
Ist mir heute beim aufwachen auch klar geworden ...
Danke nach Kirchlengern.
Falls mal wieder jemand drüber stoplpert, die Klasse ProcessBuilder sieht auch recht vielversprechend aus.
 

Neue Beiträge

Zurück