Hallo,
soweit ich gesehen habe, kann man Shell-Kommandos per Runtime.exec() ausführen. Habe das Problem, dass ich nicht nur ein Programm auf der Shell starten will, sondern auch gleich noch mit Eingaben versehen will, wobei das Programm selber läuft auch auf der Shell. Das Ganze sieht ungefähr so aus:
f ist ein File, welches auf das lokale Verzeichnis zeigt, wo das Programm gestartet werden soll - hier als Beispiel der Editor "vi". Bspw. möchte ich jetzt den vi mit ":q" von java aus beenden oder ein paar Wörter hineinschreiben. Habe schon versucht, einen zweites Objekt von Process anzulegen, aber es gibt keine Auswirkungen auf das gestartete Programm. Auch der Versuch mit einem zweiten BufferedReader auf vi_proc zuzugreifen hat nichts bewirkt.
vg,
fuse
soweit ich gesehen habe, kann man Shell-Kommandos per Runtime.exec() ausführen. Habe das Problem, dass ich nicht nur ein Programm auf der Shell starten will, sondern auch gleich noch mit Eingaben versehen will, wobei das Programm selber läuft auch auf der Shell. Das Ganze sieht ungefähr so aus:
Code:
String vi_str;
try{
Process vi_proc = Runtime.getRuntime().exec("vi", null, f);
// Ausgabe Java-Konsole
BufferedReader vi_in = new BufferedReader(
new InputStreamReader(
vi_proc.getInputStream()
));
try {
while ((vi_str = vi_in.readLine()) != null) {System.out.println(vi_str);}
} catch (IOException e2) {System.err.println(e2);}
} catch (IOException e1) {System.err.println(e1);}
f ist ein File, welches auf das lokale Verzeichnis zeigt, wo das Programm gestartet werden soll - hier als Beispiel der Editor "vi". Bspw. möchte ich jetzt den vi mit ":q" von java aus beenden oder ein paar Wörter hineinschreiben. Habe schon versucht, einen zweites Objekt von Process anzulegen, aber es gibt keine Auswirkungen auf das gestartete Programm. Auch der Versuch mit einem zweiten BufferedReader auf vi_proc zuzugreifen hat nichts bewirkt.
vg,
fuse