Как использовать ProcessBuilder - PullRequest
2 голосов
/ 11 февраля 2011

Я пытаюсь использовать ProcessBuilder, чтобы заставить Java взаимодействовать с внешней программой (Prolog).

Я понимаю, как установить переменные среды, и сделал это.

Но я не понимаю, как я общаюсь с процессом, как я делаю входные данные, как я получаю выходные данные из него, как обрабатываются ошибки.Я считаю, что мне нужно использовать входной поток для получения вывода из пролога, входной поток для ошибок из Prolog и выходной поток для выдачи пролога ввода.Может кто-нибудь сказать мне, как я использую эти потоки для связи с программой?

Вот что у меня есть (дайте мне знать, если в какой-то момент я ошибаюсь)

ProcessBuilder pb = new ProcessBuilder("gprolog");
//Enviroment variable to disable the gui for prolog
pb.environment().put("LINEDIT", "gui=no");
InputStream in = pb.getInputStream();
InputStream err = pb.getErrorStream();
OutputStream out = pb.getOutputStream();
pb.start();

Как мне дать команду прологу после этого?

...