GeneralCommandLine.createProcess (). WaitFor () никогда не заканчивается - PullRequest
0 голосов
/ 26 августа 2018

Я разрабатываю плагин IntelliJ IDEA и пытаюсь прочитать большой объем текста из стандартного вывода GeneralCommandLine, но с этим текстом он никогда не заканчивается.

Я пытался прочитать то же количество текста, напрямую вызывая двоичный файл, генерирующий его, а также просто «перехватывая» текстовый файл, содержащий тот же текст вывода. Результат тот же: waitFor() никогда не закончится.

GeneralCommandLine generalCommandLine = new GeneralCommandLine("cat");
generalCommandLine.setCharset(Charset.forName("UTF-8"));
generalCommandLine.addParameter("pl.txt");
generalCommandLine.setWorkDirectory(plugin.getProject().getBasePath());
final Process process = generalCommandLine.createProcess();
process.waitFor();

Текст не очень длинный (3 тыс. Строк Json).

Должен ли я перенаправить ввод во временный файл и прочитать оттуда? Если да, каков наилучший метод назначения и имени временного файла?

...