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.