Поделиться через


Переход с Java 7 на Java 8

В этой статье содержатся рекомендации по переносу приложения с Java 7 на Java 8. Использование функций Java 8 не рассматривается.

Для перехода с Java 7 на Java 8 не существует универсального решения. Переход с Java 7 на Java 8 обычно не требует большого объема работы. Проблемы могут возникнуть в связи с несколькими измененными API, повышением строгости определения типа в javac, изменениями в загрузчиках классов и изменениями в permgen (часть системы сборки мусора).

Как правило, наилучшим подходом является попытка запуска на Java 8 без предварительной перекомпиляции. Этот подход позволит запустить приложение максимально быстро. Для библиотеки вашей целью будет публикация артефакта, который компилируется и тестируется с помощью JDK 8.

Прекращение использования Java 7

Поддержка сообщества завершится 29 июля 2022 г., в день окончания срока использования Java 7. Все приложения, работающие на Java 7, будут продолжать работать, но для самой платформы Java 7 не будут предоставляться обновления или исправления для системы безопасности. Чтобы снизить риски и потенциальные уязвимости для системы безопасности, обновите приложения до Java 8 или 11 в зависимости от требований к рабочей нагрузке.

Ниже приведено каноническое справочное руководство по миграции Oracle JDK. В руководстве по миграции рассматриваются все несовместимости в спецификации Java и несовместимости в реализации JDK. Большинство этих несовместимостей являются пограничными случаями, и вы должны изучить их при появлении предупреждения или ошибки.

Запуск на Java 8

Большинство приложений должно работать на Java 8 без изменений. Первое, что нужно попробовать, — это запустить приложение на Java 8 без перекомпиляции кода. Смысл простого запуска заключается в том, чтобы посмотреть, какие предупреждения и ошибки будут выданы во время выполнения. При таком подходе
вы сможете запустить приложение на Java 8 быстрее с минимальными усилиями.

Большинство проблем, с которыми вы можете столкнуться, можно устранить без перекомпиляции кода. Если проблему следует исправлять в коде, сделайте это, но скомпилируйте программу с использованием JDK 7. По возможности постарайтесь запустить приложение на java версии 8 перед компиляцией с использованием JDK 8.

Компиляция с использованием Java 8

Компиляция с использованием JDK 8 может потребовать обновления скриптов сборки, инструментов, тестовых платформ и включенных библиотек. Чтобы получить подробные сведения об использовании внутреннего API JDK и других предупреждениях, запустите javac с параметром -Xlint:unchecked.

Переход с Java 7 для службы приложений Azure

Чтобы перенести службы приложений с Java 7 на Java 8 или 11, войдите на портал Azure, перейдите к веб-приложениям, которые требуется обновить, а затем перейдите в раздел Конфигурация>Параметры>Параметры стека. Вы увидите раскрывающиеся списки для основной и дополнительной версий Java, а также для версии Tomcat, если вы используете Tomcat. Выберите Java 8 или 11. Помните, что вы можете изменить конфигурацию в слоте развертывания, чтобы безопасно протестировать изменение конфигурации, а затем поменять местами новую и рабочую среды. (Пункт "Java 7" может быть скрыт, чтобы клиенты не могли создавать зависимости от старых сред выполнения.) Дополнительные сведения см. в разделе Настройка промежуточных сред в службе приложений Azure.

Use the selector to change your Java version

Вы можете использовать параметр приложения JAVA_TOOLS, если нужно указать новые параметры среды выполнения. Эти параметры будут применены при запуске приложения. Дополнительные сведения см. в разделе Настройка приложения Java для службы приложений Azure. Дополнительные сведения о политиках поддержки для сред выполнения в Службе приложений см. в разделе Встроенная поддержка нескольких языков и платформ статьи Обзор Службы приложений.

Дальнейшие действия

После запуска приложения на Java 8 рекомендуем выполнить следующие шаги по модернизации Java до Java 11 с использованием следующих руководств.