Self-contained системы — это архитектурный подход, фокусирующийся на разделении функциональности независимых подсистем, с тем чтобы создать полнофункциональную систему на базе сотрудничества множества небольших приложений. В этом подходе особое значение имеет независимость решения от других приложений.
В мире Java довольно давно существуют решения, позволяющие сделать ваш проект независимым от JRE на компьютерах ваших пользователей, но только с приходом Java 9 появился инструментарий, который делает это без костылей и велосипедов.
Поговорим об одной из самых важных возможностей Java 9 — Custom Runtime Images и о том, как применять её на практике сейчас, когда ваши зависимости все еще не готовы к Java 9.
В этом докладе на практических примерах будут продемонстрированы новые возможности Java 9 для self-contained систем, подход к миграции приложений и реальное применение этой технологии для разработки консольных утилит и развертывания приложений в контейнерах.