exitValue
выдает IllegalThreadStateException
, если подпроцесс не завершен, и возвращает значение выхода, если он завершен.
WaitFor
будет блокировать вызывающий поток до тех пор, пока подпроцесс не завершится, и немедленно вернется, если онуже был прекращен.
Так что я бы сказал, что они оба будут вести себя одинаково, когда подпроцесс уже завершен, но будут вести себя по-разному, когда он все еще работает.Если подпроцесс работает, exitValue
сгенерирует исключение, а waitFor
заблокирует вызывающий поток.