Не обязательно.Если у вас есть код, который использует пакеты / синтаксические структуры, не определенные в предыдущих версиях, программа не сможет запуститься / скомпилироваться.
Думайте об этом так.До Java 8 не было лямбда-выражений.Поэтому, если вы создадите лямбда-выражение в Java 8+, а затем попытаетесь скомпилировать его в Java 7, компилятор будет выглядеть так: Что такое лямбда-выражение?
Короче нет.Тем не менее, вы можете пойти другим путем.Скомпилируйте код, написанный в более низкой версии, используя более высокую версию ... по большей части.