2013-04-11 2 views
0

Я работаю над проектом, который требует от меня запуска экземпляра scala с использованием класса Process. Для этого я выполнить следующий код:Java: Запись на поток вывода Scala

Process process = RunTime.getRunTime().exec("<path to scala binary> <scala file>"); 

Этого вызов дает мне представитель процесса программы лестницы, которая выполняется. Я могу получить доступ к входному потоку процесса и получать информацию от процесса с:

BufferedReader stdin = new BufferedReader(new InputStreamReader(process.getInputStream())); 
stdin.readLine(); 

Скал программа, которую я пытаюсь запустить включает сканер, который улавливает ввод и выводит его. При попытке зарегистрировать BufferedWriter к OutputStreamWriter, который генерируется из process.getOutputStream(), а затем записать этот поток с:

stdout.write("Hello"); 

Программа Scala не получает этот вход, и мне было интересно: почему это происходит?

+1

Вы очищаете вход ('stdout.flush()')? –

+0

В этом была проблема, спасибо! –

ответ

2

Оказывается, я забыл сбросить поток.

Смежные вопросы