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

nemos

Lt. Junior Grade
Dabei seit
Sep. 2007
Beiträge
411
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)

Rossie

Commodore
Dabei seit
Dez. 2010
Beiträge
4.102
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.
 
Top