Java Mac Terminal

Hallo,

habe eine kurze Frage.

Ich möchte über Java ein Terminal öffnen, 1-2 Befehle im Terminal „absetzen“ und das Terminal schließen.

Das Terminal öffnen ist schon mal kein Problem:

Runtime r = Runtime.getRuntime();
Process p = r.exec(cmd);
p.waitFor();

wobei
String cmd = „/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal“;

Leider kann ich keinen Befehl im Terminal ausführen!

Ich habe versucht cmd als Stringarray zu definieren -> klappt nicht!
~/command -> als Terminalparameter zu übergeben klappt auch nicht

Langsam gehen mir jedoch die Ideen aus :frowning:

Über Hilfe wäre ich dankbar,

Sebastian_

Hi,

wie wäre es wenn du die Befehle direkt als Prozess ausführst
und deren Ausgaben in eine Konsole umleitest?
(stdout der Prozesse auf eine Ausgabekonsole verbiegen)
Dann hast du auch mehr Kontrolle über das Gelingen (Fehlerrückmeldungen) der einzelnen Komandos.

Mit
stdin = proc.getOutputStream ();
stderr = proc.getErrorStream ();
stdout = proc.getInputStream ();
kommt man etwa an die Streams eines Prozesses ran.

Hallo Andreas,

Danke für deinen Tipp. Das mit dem Prozess habe ich zwar hinbekommen (ich kann damit auch verschiedene Befehle umsetzen), jedoch löst es in meinem konkreten Fall nicht das Problem :frowning:

Ich habe ein wissenschaftliches Tool welches ich mit Java steuern möchte. Da es aus vielen Prozessen besteht, welche alle eng mit dem Terminal verwebt sind und sich über viele Komponenten erstreckt (musste dem Terminal viele Pathvariablen vorgeben) ist das Ausführen des Hauptprozesses nicht möglich. Warum weiß ich nicht, aber es funktioniert in diesem Fall leider nicht.

Daher bleibt das Problem offen und ich versuche weiter das Terminal anzusteuern.

Trotzdem Danke für die gute Idee,

Sebastian_