Я хотел бы обнаружить все реализации интерфейса во время времени выполнения в приложении Java и загрузить те классы динамично из файлов JAR, которые пользователь может добавить к папке. Это - сменная система в основном.
Я нашел несколько решений для этого:
Там кто-либо другой - широко используемые решения для этого?
Обновление: нет никакой потребности в разделении кода, и OSGi, кажется, слишком сложен для моих простых потребностей прямо сейчас. Я также добавил "Простой" к заголовку этого вопроса разъяснить мои намерения.
Это немного тяжеловато, но вам стоит рассмотреть Apache Felix или Eclipse Equinox, обе эти реализации OSGi очень живы и живы, но, возможно, перегружены для ваших нужд. Однако это одна из тех самых проблем, которые призвана решить OSGi.
Как сказал @skaffman, OSGi и современные реализации, построенные на ней, кажутся идеальным решением. Если вы любите побеждать, рассмотрите iPOJO , который отлично объединяет аннотации в стеке OSGi (обратите внимание, iPOJO работает на любой платформе OSGi). Если вам больше нравится XML / Spring, подумайте об использовании Blueprint .
Наконец, учитывая JSPF, я не буду разделять ваше мнение о его незрелости. Немного поработав над этим проектом, я нахожу его действительно полезным в своей области, поскольку он позволяет легко использовать подключаемый модуль без хлопот и разделения путей к классам, которые обеспечивает OSGi.