Переход с 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.
Вы можете использовать параметр приложения JAVA_TOOLS
, если нужно указать новые параметры среды выполнения. Эти параметры будут применены при запуске приложения. Дополнительные сведения см. в разделе Настройка приложения Java для службы приложений Azure. Дополнительные сведения о политиках поддержки для сред выполнения в Службе приложений см. в разделе Встроенная поддержка нескольких языков и платформ статьи Обзор Службы приложений.
Дальнейшие действия
После запуска приложения на Java 8 рекомендуем выполнить следующие шаги по модернизации Java до Java 11 с использованием следующих руководств.