Исходная информация: у меня есть отличное приложение (назовем его Runner), которое способно запускать все, что реализует определенный интерфейс (назовем его Runnable). . И у меня есть пул Runnables (отличные сценарии), которые должны быть видны этому приложению на этапе инициализации и какое приложение будет вызывать (через интерфейс и передачу объекта в качестве параметра).
Задача. Мне нужен способ загрузки и вызова всех Runnables из Runner.
Требования: это сложно, так как скрипты могут не следовать определенной структуре пакета и могут быть размещены на том же компьютере, что и Runner, но практически в любом месте. Они также могут быть названы по-разному (открытое обсуждение для обязательного именования, аналогичного java: имя класса == имя файла) и могут быть пропущены на данный момент (хотя, если будет совет по этому поводу, это круто!).
ПРИМЕЧАНИЯ: я полагаю, что это возможно, если иметь файл конфигурации, в котором настраиваются сценарии (указывается абсолютный путь), и загружать их с помощью этот материал и либо привести Object к интерфейсу Runnable и запустить то, что мне нужно, либо invokeMethod(...). Но понятия не имею, можно ли это сделать проще (должен быть способ, потому что он выглядит слишком неуклюжим). Я также не могу придумать способ решения проблемы с именами файлов и нескольких классов в одном файле.
P.S.: Такое длинное описание может вызвать недопонимание, поэтому прокомментируйте нечеткие части.