Почему поддерживаемая версия класса Java в моей Mac OS JRE такая низкая и как это исправить?JAVA

Программисты JAVA общаются здесь
Anonymous
Почему поддерживаемая версия класса Java в моей Mac OS JRE такая низкая и как это исправить?

Сообщение Anonymous »


Согласно каждой диагностике, которую я могу запустить на своем iMac двухлетней давности, моей версией среды выполнения Java является Java 8 Update 391, которая (на момент написания этой статьи) является последней и лучшей JRE, которую можно загрузить для Mac с сайта java.com. Это та же версия, которую Mac OS рекомендует в настоящее время. Недавно я скомпилировал проект на своем ПК с помощью JDK 21. Это не очень хорошо сочетается с Mac JRE, которая утверждает, что может запускать только версии классов до 52.0 (JDK 21 создает версию класса 62.0).

Чтобы решить эту проблему, я поручил IDE скомпилировать байт-код class-version-52, но, согласно этой таблице, class-version-52 использует версию -target 8 (! ), то есть полные 13 версий, удаленных из 21, которые я компилирую. Версия на самом деле настолько старая, что IDE выдает мне предупреждения о том, что -target 8 теперь устарел и скоро перестанет поддерживаться, а такие функции, как блочные строки и т. д., недоступны. .

Что мне здесь не хватает? Мой Mac JRE ужасно устарел? Если да, то почему и что я могу сделать, чтобы это исправить?

Я неправильно понимаю таблицу?

Почему мне вообще нужно использовать -target? Разве последняя версия кода JRE не должна поддерживать код, скомпилированный последней версией JDK?

(Приношу извинения, если это дубликат, но при максимальном поиске подобных проблем выдаются только решения «Обновите JRE» и «Скомпилируйте для более низкой целевой версии»., тогда как мне конкретно интересно почему мой определенно актуальный Mac JRE кажется сильно устаревшим.)

Вернуться в «JAVA»