Kompletten InputStream der Kommandokonsole ausgeben

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi zusammen,

ich habe folgende Klasse, in der ein Skript mit Parametern ausgeführt werden soll. Diese sieht wie folgt aus:

Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ScriptExecutor {

	public void fuehreProgrammAus(String festplatte, String pfad) {
		try {
			String cmdstart[] = { "cmd.exe", "start", festplatte, pfad};
			Process proc = new ProcessBuilder("cmd.exe", "start", festplatte, pfad).start();
			BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
			String str = br.readLine();
			System.out.println("Ausgabe der Konsole: "+str);
			
		} catch (IOException e) {
			// TODO Automatisch erstellter Catch-Block
			e.printStackTrace();
		}

	}
}

Nun rufe ich die Methode auf:

Code:
import java.net.MalformedURLException;

public class Test {
	public static void main(String[] args)
	{
		ScriptExecutor ex = new ScriptExecutor();
		ex.fuehreProgrammAus("/d", "MeinOrdner\\meinSkript --help");
	}
}

Leider erhalte ich natürlich immer nur eine Zeile der Ausgabe der Kommandokonsole (in diesem Fall die Version des Betriebssystems).

Wie kann man direkt alle Zeilen ausgeben lassen?

Dann könnte man prüfen, ob die Methode so richtig arbeitet. Ist die Ausführung des Skripts so korrekt?
 
S

SlaterB

Gast
> String str = br.readLine();
> System.out.println("Ausgabe der Konsole: "+str);

->
String str = null;
while ((str = br.readLine()) != null) {
System.out.println("Ausgabe der Konsole: "+str);
}
 
G

Guest

Gast
Vielen Dank für die Antwort. Allerdings wird der Befehl nicht ausgeführt.
Meiner Meinung nach ist doch der Befehl syntaktisch richtig oder?
 
S

SlaterB

Gast
wenn die erste eingelese Zeile null ist, dann passiert natürlich gar nix, besser doch erstmal wieder mit einfachen Befehlen arbeiten
oder alternativ auch die Schleife testweise einfacher formulieren:


System.out.println("gleich gehts los:");
String str = null;
while (true) {
str = br.readLine();
if (str == null) {
System.out.println("str war null");
} else {
System.out.println("Ausgabe der Konsole: "+str);
}
}

so müsstest du zumindest irgendeine Ausgabe bekommen,
ansonsten wird der entsprechende Code gar nicht ausgeführt
 
G

Guest

Gast
Ich erhalte hier folgende Ausgabe:

InputStream der Konsole: Microsoft Windows XP [Version 5.1.2600]
InputStream der Konsole: (C) Copyright 1985-2001 Microsoft Corp.
InputStream der Konsole:

Anscheinend wird die Kommandokonsole gestartet. Jediglich die Ausführung des Skripts wird nicht durchgeführt.
 
S

SlaterB

Gast
teste auch
proc.getErrorStream()

vielleicht läuft dein Skript nicht so wie du dachtest ;)
 
G

Guest

Gast
Um ganz sicher zu gehen lasse ich mir nicht nur den InputStream, sondern auch den ErrorStream ausgeben.

Der Code:
Code:
public void fuehreProgrammAus(String festplatte, String pfad) {
		try {
			String cmdstart[] = { "cmd.exe", festplatte, "start", pfad};
			Process proc = new ProcessBuilder("cmd.exe", "start", festplatte, pfad).start();
			 // Ab hier sind eigentlich nur Ausgaben, die für den Programmierer nützlich sein könnten, 
		      // bei möglichen Fehlern bzw. Erfolgen 
		      BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
		      BufferedReader er = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
		      String konsolenString = null; 
		      while ((konsolenString = br.readLine()) != null) { 
		    	  System.out.println("InputStream der Konsole: "+konsolenString); 
		      }
		      System.out.println("Bla");
		      while ((konsolenString = er.readLine()) != null) { 
		    	  System.out.println("Fehler der Konsole: "+konsolenString); 
		      }
			
		} catch (IOException e) {
			// TODO Automatisch erstellter Catch-Block
			e.printStackTrace();
		}

	}

Ich erhalte noch immer dieselbe Ausgabe. Nicht einmal das "Bla" erscheint. Keine Fehlermeldung oder sonstiges... Sehr merkwürdig....
 
S

SlaterB

Gast
> Nicht einmal das "Bla" erscheint

dann ist br noch nicht beendet und wartet auf irgendwas,
solange blockiert auch das Programm,

teste nochmal nur die Error-Ausgabe
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Kompletten String umwandeln in Integer Java Basics - Anfänger-Themen 10
H Einlesen eines kompletten Arrays Java Basics - Anfänger-Themen 2
M Bei *.jar start kompletten String übergeben Java Basics - Anfänger-Themen 7
G Kompletten (image) Array löschen Java Basics - Anfänger-Themen 14
H2SO3- kompletten string aus datei auslesen (nicht .readline) Java Basics - Anfänger-Themen 21
G Kompletten Stacktrace mit Log4j ausgeben Java Basics - Anfänger-Themen 3
S kompletten Datensatz statt nur ein Feld auslesen lassen,wie? Java Basics - Anfänger-Themen 3
J Kompletten Ordner auf Webserver laden. Java Basics - Anfänger-Themen 6
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
berserkerdq2 inputstream und bufferedwirter /outputstream und bufferedwriter Java Basics - Anfänger-Themen 9
T Bluetooth, Inputstream Java Basics - Anfänger-Themen 0
I InputStream beim zweiten Mal fehlerhaft Java Basics - Anfänger-Themen 10
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
B InputStream / OutputStream / PipedOutputStream und managedExecutorService Java Basics - Anfänger-Themen 3
B java.io.OutputStream zu java.io.InputStream konvertieren Java Basics - Anfänger-Themen 18
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
B Konvertieren: Outputstream zu Inputstream Java Basics - Anfänger-Themen 13
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D InputStream parsen und als Bilddatei abspeichern Java Basics - Anfänger-Themen 1
G Input/Output InputStream gibt nicht die Korrekten Werte aus Java Basics - Anfänger-Themen 10
T Datentypen InputStream to list of Int (or similar) Java Basics - Anfänger-Themen 4
P bytes aus einem InputStream zählen Java Basics - Anfänger-Themen 2
P InputStream eines Musik-Streams abspielen Java Basics - Anfänger-Themen 2
I Resize Image - Einlesen von InputStream Java Basics - Anfänger-Themen 3
T Input/Output Exception bei einem InputStream Java Basics - Anfänger-Themen 2
W ProcessBuilder InputStream in Array speichern Java Basics - Anfänger-Themen 3
K InputStream erstellen Java Basics - Anfänger-Themen 4
B Input/Output Data / Buffer / File Outstream Inputstream Java Basics - Anfänger-Themen 2
L Webservice soll InputStream übergeben bekommen Java Basics - Anfänger-Themen 7
S Eigener InputStream, Hilfe bei read-Methode Java Basics - Anfänger-Themen 6
C InputStream Java Basics - Anfänger-Themen 2
O Input/Output Fragen zum InputStream Java Basics - Anfänger-Themen 7
E Input/Output Relativer Bild-Pfad für InputStream Java Basics - Anfänger-Themen 5
G Frage zu InputStream? Java Basics - Anfänger-Themen 11
E Socket InputStream "terminiert" nicht Java Basics - Anfänger-Themen 4
E Input/Output Inputstream während der Laufzeit füllen Java Basics - Anfänger-Themen 2
A Frage zu Beispiel eines Dekorierers von InputStream Java Basics - Anfänger-Themen 4
B Input/Output InputStream (JSch) in OutputStream (Blob) überführen Java Basics - Anfänger-Themen 8
P Input/Output InputStream Listener? Java Basics - Anfänger-Themen 7
M Eigener InputStream will nicht mit BufferedReader Java Basics - Anfänger-Themen 3
S Input/Output Neuen InputStream System.in setzen Java Basics - Anfänger-Themen 11
A InputStream gibt nur jede 2te Zeile aus Java Basics - Anfänger-Themen 7
J InputStream FTP Java Basics - Anfänger-Themen 8
brunothg Inputstream zu Filechannel Java Basics - Anfänger-Themen 6
K StringWriter/String nach InputStream konvertieren Java Basics - Anfänger-Themen 3
Benji0815 Inputstream aus Konsole in JTextArea Java Basics - Anfänger-Themen 14
A Problem mit InputStream Java Basics - Anfänger-Themen 4
bastiann Kann man Inputstream nur auf ein Zeichen anwenden? Java Basics - Anfänger-Themen 5
U Inputstream.read()/readLine() blockiert immer Java Basics - Anfänger-Themen 18
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
G InputStream aufrufen, ändern und zurück geben Java Basics - Anfänger-Themen 2
W Zeichen ersetzen im InputStream Java Basics - Anfänger-Themen 3
N String vom InputStream in TextArea übertragen Java Basics - Anfänger-Themen 6
A Frage zu Puffergröße bei InputStream Java Basics - Anfänger-Themen 9
G in einem inputstream auf " " abfragen? Java Basics - Anfänger-Themen 3
M Datei speichern mittels InputStream Java Basics - Anfänger-Themen 13
P InputStream in Byte-Array speichern Java Basics - Anfänger-Themen 2
G String in InputStream umwandeln? Java Basics - Anfänger-Themen 8
M Auslesen eines InputStream Java Basics - Anfänger-Themen 4
M Problem mit InputStream Java Basics - Anfänger-Themen 7
S Probleme mit InputStream- Rückgabe Java Basics - Anfänger-Themen 4
I InputStream von Konsole abfangen Java Basics - Anfänger-Themen 6
G InputStream im finally-Block schließen Java Basics - Anfänger-Themen 7
K InputStream? Java Basics - Anfänger-Themen 3
S Sockets and InputStream Java Basics - Anfänger-Themen 2
M InputStream einer Socketverbindung funktioniert nicht Java Basics - Anfänger-Themen 19
M Byte InputStream zu Zeichenformat Unicode bzw String konvert Java Basics - Anfänger-Themen 5
R InputStream erstellen, der aus String liest Java Basics - Anfänger-Themen 8
R ENTER in InputStream nicht lesen Java Basics - Anfänger-Themen 4
G InputStream auslesen und zurückschreiben Java Basics - Anfänger-Themen 9
R BufferedReader <-> InputStream Java Basics - Anfänger-Themen 3
R Suche geeignetes InputStream Java Basics - Anfänger-Themen 2
D InputStream -> Image Java Basics - Anfänger-Themen 6
M String zu InputStream/InputSource Java Basics - Anfänger-Themen 2
S Problem mit InputStream / flush() / BufferedReader Java Basics - Anfänger-Themen 19
C Aus ein Image-Objekt einen InputStream generieren? Java Basics - Anfänger-Themen 6
J InputStream in String umwandeln Java Basics - Anfänger-Themen 5
J InputStream ist null Java Basics - Anfänger-Themen 7
P InputStream, BufferedString Java Basics - Anfänger-Themen 3
B Methoden Methode Direkt starten (über Kommandokonsole) Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben