Здравствуйте.
Пишу программу на яве (openjdk 18), которая использует всякие возможности языка от явы наподобие рефлекшнов, ключевое слово var (очень ценное) и так далее, версии до 12 наверное.
Как я понимаю, это приложение нельзя же будет запустить, просто зайдя на сайт java.com и скачав оттуда последнюю версию (которая, как ни странно, версии 8)? Для запуска будет нужна именно openjdk?
Я-бы различал отдельно язык и платформу. Версия платформы JVM при компилляции собирается
в заголовке каждого .class файла. И когда мы говорим о совместимости бинарника - то как раз
имеем в виду именно эту версию.
StreetWanderer, ой, объяснять пользователям, как пользоваться клёвыми утилитами-ещё тот геморрой. Ссылки на девелоперскую версию меня более чем устраивает
Odissey Nemo,
1. sdkman - не ИИ.
2. Да, думаю, проще установить Java одной консольной командой.
3. Нередко приходится держать несколько версий Java и переключаться между ними опять-таки удобно одной командой.
Если ваше приложение написано на java 18, то конечно-же его нельзя будет запустить на java 8.
На сайте java.com можно нажать на ссылки "Java SE Development Kit" или "OpenJDK Early access Builds" для того чтобы скачать другие версии джавы.
Как я понимаю, это приложение нельзя же будет запустить, просто зайдя на сайт java.com и скачав оттуда последнюю версию (которая, как ни странно, версии 8)?
Это уже не обратная совместимость, которая как раз-таки есть (по большей части).
Приложение, написанное на Java 8, скорее всего без проблем заведется на Java 21.
StreetWanderer, верно, криво выразился - имел в виду, что использование var и остальных новых фишек делает код несовместимым для запуска на более ранних версиях.