Guten Abend.
Kommen wir direkt zur Frage.
Ich führe per Java einen Konsolenbefehl aus. Dieser läuft auch soweit.
Nun möchte ich aber Kommandos laufen lassen, welche endlos sind. Das bedeutet, dass ich den Stream abfangen muss, um die ankommenden Daten dann in meinem Programm verarbeiten zu können.
Hier ist der Code den ich zur Zeit verwende, der jedoch nicht meinen Ansprüchen genügt, da das Programm erst weitermacht, wenn der Befehl abgeschlossen ist.
Diesen Code habe ich so im Netz gefunden. Leider bin ich nicht oft mit Java unterwegs, daher hoffe ich auf Hilfe.
Code
try
{
Process p = Runtime.getRuntime().exec("ifconfig"); // Hier kommt der Endlosbefehl rein.
p.waitFor();
String line;
BufferedReader error = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while((line = error.readLine()) != null){
System.out.println(line);
}
error.close();
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while((line=input.readLine()) != null){
System.out.println(line);
}
input.close();
OutputStream outputStream = p.getOutputStream();
PrintStream printStream = new PrintStream(outputStream);
printStream.println();
printStream.flush();
printStream.close();
}
catch(IOException | InterruptedException ex){}
Alles anzeigen