Java Linux, ProcessBuilder, command: "echo "Das ist ein Test." | ./prog

nemos

Lt. Junior Grade
Registriert
Sep. 2007
Beiträge
412
Gelöst: Linux, ProcessBuilder, command: "echo "Test." | ./prog

Hallo,
ich versuche gerade den Befehl:
Code:
echo "Test." | ./prog
mit ProcessBuilder zu realisieren.
Dieser Befehl klappt ohne Probleme im Terminal (Ubuntu)
Mein derzeitiger Befehl:
Code:
ProcessBuilder pb = new ProcessBuilder("echo","\"Test.\"", "|", "./prog" );
Allerdings wenn ich dann pb starte, Und die Ausgabe lese:
Code:
pb.directory( new File(absolutePath)); //entspricht "/home/anonym/programm/" in dem Ordner Programm ist prog drin
Process child = pb.start();
try {
	child.waitFor();
} catch (InterruptedException e) {

	e.printStackTrace();
}
 InputStream in = child.getInputStream();
 output = convertStreamToString(in); //produziert einen String, aus in
System.out.println(output);
Und ich bekomme als Ausgabe:
Code:
"Test" | ./prog
Ich will aber die Ausgabe von dem prog haben.

Wer kann helfen? :)
 
Zuletzt bearbeitet: (Lösung gefunden)
Du versuchst ein Shell-Kommando aufzurufen. Das funktioniert allerdings nur in der Shell. Diese muss mithin auch gestartet sein. Setzt also noch ein "sh" davor, oder welche Shell Du verwenden möchtest.
 

Ähnliche Themen

Zurück
Oben