Вам нужно создать еще один поток и ввести пользовательский ввод через process#getOutputStream()
.См. Следующий пример:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
public class ProcessWithInput {
public static void main(String[] args) throws IOException, InterruptedException {
Process p = Runtime.getRuntime().exec("cat");
OutputStream os = p.getOutputStream();
os.write("Hello World".getBytes());
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String s;
while ((s = br.readLine()) != null) {
System.out.println(s);
}
br.close();
p.waitFor();
p.destroy();
}
}
Конечно, вам нужно правильно обрабатывать ошибки / исключения и т. Д.
Другой вариант - использовать ProcessBuilder
, который позволяет вам вводить данные через файл.