Muszę uruchomić zewnętrzny plik wykonywalny w taki sposób, aby użytkownik mógł wchodzić w interakcje z uruchomionym programem.Uruchom zewnętrzny plik wykonywalny z kodu Java za pomocą przekierowania strumieni
Na przykład w systemie OpenSuse Linux znajduje się menedżer pakietów - Zypper. Możesz uruchomić zyppera w trybie poleceń i przekazać mu polecenia takie jak instalowanie, aktualizowanie, usuwanie itp.
Chciałbym uruchomić go z kodu Java w sposób użytkownik może wchodzić w interakcje z nim: polecenia wejściowe i zobaczyć wyniki i błędy programu, który rozpoczął.
Oto kod Java Próbuję użyć:
public static void main(String[] args) throws IOException, InterruptedException {
Process proc = java.lang.Runtime.getRuntime().exec("zypper shell");
InputStream stderr = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
char ch;
while ((ch = (char)br.read()) != -1)
System.out.print(ch);
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
}
Ale niestety widzę tylko to wyjście:
zypper>
ale bez względu na to, co piszę, mój wkład nie wpływa program, który został uruchomiony. Jak mogę zrobić, co chcę?
Dziękuję za odpowiedź. To pomogło! –