Несколько подходов, используемых одновременно, обычно дают наилучшие результаты. Разные пользователи могут выбирать разные способы настройки вашего приложения. Например:
- Каталог по умолчанию, где пользователи могут размещать плагины. Или даже список каталогов, который может включать некоторый подкаталог папки приложения, некоторый общесистемный каталог в зависимом от платформы месте «данных приложения», некоторый локальный пользовательский каталог.
- Файл конфигурации с некоторыми опциями для управления поиском и выбором плагинов.
- Системное свойство Java, которое определяет список каталогов для поиска плагинов, например
java -Dorg.something.appname.plugindirs=plugindir1;plugindir2
.
- Специальный параметр командной строки или системное свойство Java для выбора конкретного плагина, возможно, предоставляющий абсолютный путь или просто имя для поиска в каталогах, указанных вышеописанными методами.
Я думаю, что чем больше возможностей предоставляет ваше приложение, тем лучше. Конечно, он должен иметь какую-то настройку по умолчанию, чтобы пользователям не пришлось беспокоиться обо всем этом, если они этого не хотят. Кроме того, порядок использования этих параметров должен быть разумным: например, для пользовательских плагинов имеет смысл переопределить системные, а не наоборот.