Это то, для чего созданы серверы приложений.Они сталкиваются с аналогичными проблемами для предоставления всех своих услуг, которые должны быть запущены и отключены в определенном порядке, чтобы поддерживать удовлетворение зависимостей.
Например, вы можете использовать микроядро JBoss, которое не намного больше, чем некоторые загрузчики классов.и двигатель JMX.Вы можете упаковать свои приложения как 'sar' или служебные архивы и указать зависимости в метаданных этих пакетов.
Вы, вероятно, можете делать подобные вещи с урезанной стеклянной рыбой или с помощью сервера Spring DM.
В качестве альтернативы движок OSGi, такой как Equinox или Felix, может предоставлять аналогичные услуги.
Другое преимущество заключается в том, что у вас будет гораздо меньше виртуальных машин.