Как уже говорили другие, вы можете использовать Process.waitFor (). Однако, прежде чем сделать это, вы должны запустить другой поток, который непрерывно читает содержимое потоков вывода процесса и ошибок; в противном случае, если произойдет ошибка, которая приведет к большому количеству вывода, ваше приложение будет зависать.
Кроме того, вы можете перенаправить вывод командного файла и ошибки в файл.