ProcessBuilder - рекомендуемый способ управления внешними процессами начиная с Java 5. Имеется более удобный интерфейс для управления переменными среды и возможность автоматического перенаправления стандартной ошибки в стандартный вывод.
К сожалению, как и в случае Runtime.exec (), вам все равно придется вручную запускать поток для использования выходного потока процессов (и потока ошибок), чтобы он не блокировал систему.