Я автоматизирую сборку gradle с использованием Java. Я выполняю "gradlew.bat" в процессе, созданном из ProcessBuilder. Вот код:
ProcessBuilder gradlewProcessBuilder = new ProcessBuilder(mainDirPath.concat("\\android\\gradlew.bat"), "assembleDebug");
gradlewProcessBuilder.directory(new File(mainDirPath.concat("/android")));
gradlewProcessBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT); //This is the line
Process gradlewProcess = gradlewProcessBuilder.start();
gradlewProcess.waitFor();
Теперь этот код работает безупречно, но выводит консоль Gradle через консоль приложения, и я этого не хочу. Если я удалю эту строку:
gradlewProcessBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
Процесс зависает waitFor () бесконечно.
Я абсолютно не представляю, как перенаправление Output может повлиять на это, любой свет, который вы можете пролить, приветствуется.