Может потребоваться сбросить записи из JVM в дочерний процесс, чтобы убедиться, что он получает свои входные данные.IIRC Мне не нужно было делать это на Windows, но на Linux.Я также столкнулся с проблемами, когда мне пришлось заставить дочерний процесс сбрасывать записи, чтобы JVM тоже сразу их видела.
Кроме того, убедитесь, что потоки JVM читают из stdout и stderr, прежде чем что-либо делать.Если любой из этих буферов заполняется, он может заблокировать процесс.Это огромная проблема в Windows.Вам понадобится только один поток, если вы используете опции для объединения потоков при запуске процесса.
Кроме того, в вашем примере (выше) нет новой строки, не будет ли bash требовать ее?например, "touch blah \ n"