Как сохранить эхо-вывод сценария оболочки в Java [duplicate]

This question already has an answer here:

Executing another java program from our java program [duplicate] 3 answers

Я работаю над Java-программой, которая вызывает несколько сценариев Shell в тестах JUnit (следовательно, не выводит ничего, кроме. И E), которые манипулируют файлами и таблицами SQL, а затем сравнивают данные в указанных таблицах с их ожидаемыми значениями. Все работает теоретически, однако я сталкиваюсь с серьезной ошибкой, когда один тип теста работает, как ожидалось, в то время как другой тип дает сбой после десятиминутного перерыва. Я выделил проблему как один из сценариев оболочки, однако я не написал этот сценарий и не могу его никоим образом изменить. Лучший способ решить эту проблему - сохранить выходные данные соответствующего сценария, которые поступают из серии эхо-вызовов. Есть ли какой-то простой / надежный способ сохранить эхосигнал? Я немного погуглил, но ничего не вышло. Я еще не пытался сохранить выходные данные, поэтому у меня нет попытки показать вам, но код, который я уже написал, который может иметь отношение к следующему:

<code>//Currently using BufferedWriter, File, FileWriter, IOException, and Writer
import java.io.*;

//Method to write to a log file
public void record(String input) throws IOException {
  writer = new BufferedWriter(new FileWriter(file,true));
  writer.write(input + "\n");
  writer.close();
}

Runtime rt = Runtime.getRuntime();

//Several of these since a lot of file manipulation/script running occurs
process = rt.exec("./shell.sh");
process.waitFor();
</code>

В другом вопросе, который я задал, кто-то рекомендовал не использовать Runtime.exec () по нескольким причинам. Хотя я понимаю преимущества отсутствия exec (), мне нужно для этой версии программы.

Вопрос tl; dr: может ли моя Java-программа легко запускать сценарии оболочки, а также сохранять их вывод echo? Если нет, есть ли эквивалент tail -f для чтения вывода?

Ответы на вопрос(2)

Ваш ответ на вопрос