В этой теме Герберт Шильдт пишет:
Важно понимать, что практически невозможно полностью скомпилировать всю программу Java в исполняемый код, поскольку Java выполняет различные проверки во время выполнения, которые могут выполняться только во время выполнения.
Какие проверки времени выполнения он имеет в виду?
Пожалуйста, объясните причины компиляции байт-кода по частям, а не всей программы.