Всегда ставлю для разработки JDK той версии, на которой будет работать программа (например JDK 8). Но это приводит к тому, что в системе стоит куча разных JDK и нужно писать bat-ники для проставления нужного JAVA_HOME и тд. Было бы проще поставить, например, JDK 14 и использовать его для всего, просто передавая -release флаг. Могут ли при этом возникнуть какие-то несовместимости?
Раньше так делать было нельзя, т.к. компилятор не проверял методы стандартной библиотеки. Например можно было с JDK 8 скомпилировать код с -target 1.7, который использует API из 8 и программа падала в рантайме. Но, как я понимаю, в новых JDK этот режим улучшили, можно ли считать, что он стал достаточно надёжным? Или по прежнему нужно использовать старые JDK?