Замените каждый вызов java циклом goto, который вызывает java через cmd.exe. Условно зацикливайтесь, только если Java-программа завершилась с ошибкой.
.
.
:javaLoop
cmd /c java yourJavaProg || goto :javaLoop
.
.
Возможно, вы захотите защититься от бесконечного быстрого цикла в случае полного отказа, добавив счетчик, чтобы ограничить количество повторных запусков. Другая возможность заключается в том, чтобы записать время и перезапустить его, только если с момента последнего перезапуска прошло минимальное количество времени. Или, возможно, сочетание обоих.
РЕДАКТИРОВАТЬ - Если подумать, вам может не понадобиться CMD / C. Он может нормально работать, просто вызывая Java напрямую и условно зацикливаясь при ошибке.