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


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

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

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

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

Конец жизни Java 7 (EOL)

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

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

Работа на Java 8

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

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

Компиляция с помощью Java 8

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

Миграция с Java 7 для Azure App Service

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

Изменение версии Java с помощью селектора

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

Дальнейшие шаги

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