Короткий ответ: вы хотите вызвать Process.waitFor () в своем основном потоке, как вы намекаете.
Однако работа с процессами не совсем-забудьте, потому что, как указано классом javadocs , вам, вероятно, нужно прочитать вывод процесса.Если вы этого не сделаете (что в этом случае потребует отдельного потока), то во многих случаях у вас будет эффективная тупиковая ситуация - ваше Java-приложение ожидает завершения процесса, но процесс пытается записать вывод вполный буфер и, следовательно, ожидание, пока приложение Java прочитает его вывод.
Если вы дадите больше информации о том, как «это не работает», это также поможет при диагностике.
Редактировать: в совершенно отдельной точке нет смысла инициализировать p
для обнуления, а затем немедленно переназначить его.Ваша вторая строка будет более понятной и менее запутанной, как Process p = r.exec("ABCD.exe");
.