Gymterview
junior

Удалённые и устаревшие API в Java 17

При миграции на Java 17 критически важно знать, какие API удалены и чем их заменить. Главное изменение для enterprise — переход с javax.* на jakarta.*.

Удалено/Deprecated Версия Замена
JAXB (javax.xml.bind) Удалено в Java 11 jakarta.xml.bind:jakarta.xml.bind-api + org.glassfish.jaxb:jaxb-runtime
JAX-WS (javax.xml.ws) Удалено в Java 11 jakarta.xml.ws:jakarta.xml.ws-api
CORBA Удалено в Java 11 Нет прямой замены
Nashorn JS Engine Удалено в Java 15 GraalJS
RMI Activation Удалено в Java 17
Security Manager Deprecated for removal в Java 17
Applet API Deprecated for removal в Java 17
finalize() Deprecated for removal в Java 18 Cleaner, try-with-resources
javax.* пакеты Переименованы (Jakarta EE 9+) jakarta.*

Миграция javax -> jakarta

Пример
// До (Java EE):
import javax.persistence.Entity;
import javax.servlet.http.HttpServlet;

// После (Jakarta EE):
import jakarta.persistence.Entity;
import jakarta.servlet.http.HttpServlet;

Частые ошибки

  • Не обновить зависимости при миграции — javax.persistence -> jakarta.persistence требует обновления Spring Boot, Hibernate, и всех Jakarta EE зависимостей
  • Использовать finalize() — ненадёжный, медленный, deprecated; AutoCloseable + try-with-resources

Как используется в 2026

  • Все современные фреймворки используют jakarta.*
  • Инструменты миграции: OpenRewrite recipes для автоматической замены javax -> jakarta

На собеседовании: обязательно упомяните переход javax -> jakarta как основное изменение при миграции на Spring Boot 3.x. Интервьюер может спросить, как автоматизировать миграцию — ответ: OpenRewrite.