Programmausgabe umleiten

reibi

Top Contributor
Hallo

Ich kann ja folgendermassen Programme aufrufen:

BSP:
Java:
Runtime.getRuntime().exec("format.exe c:");

wenn das ganze zB. über ne grafische Oberfläche aufgerufen würde, wie kann ich die ausgabe(die normalerweise auf Konsole kommen würde) abfangen und mir zB als String geben lassen?

Danke und Gruss
 

Ark

Top Contributor
Da ich vor Kurzem zufälligerweise auf die gleiche Fragestellung stieß: Ja, die Methode [c]getInputStream()[/c] scheint wohl das zu geben, was man braucht. Aber wer sagt eigentlich, dass man damit wirklich den gesamten Output (stdout) bekommt? Oder anders gefragt: Kann es nicht passieren, dass man die Methode "zu spät" aufruft und deshalb der erste Teil der Ausgabe bereits ins Datennirwana verschwunden ist, noch bevor ich die Chance dazu gehabt hätte, mir stdout abzuholen?

Ark
 

oversoul

Aktives Mitglied
@Ark: Das kann eigentlich nicht passieren, da im Hintergrund ein Puffer arbeitet, der möglichst viele Daten zwischenspeichert.
Allerdings weiß ich nicht wieviel zwischengespeichert wird
 

Janus

Bekanntes Mitglied
Sehr wenig, einige kilobyte wenns hoch kommt. Prozesse bleiben übrigens auch stehen, sobald der Buffer voll ist, also immer schön lesen.
 

reibi

Top Contributor
Danke

also mit dem Inputstream über Process hätt ich eigentlich auch mal selber drauf kommen können. ---> Einfach mal Gehirn anschalten ;-)
 

Ähnliche Java Themen

Neue Themen


Oben