У меня есть приложение, которое я хотел бы сделать расширяемым, позволяя пользователям определять классы в Groovy, в конечном итоге реализуя некоторые интерфейсы.Компиляция и использование классов Groovy из Java во время выполнения?
Ключевым аспектом является то, что его следует интерпретировать/скомпилировать во время выполнения. То есть Мне нужно мое приложение, чтобы взять .groovy
и скомпилировать его. Выполнение этого во время загрузки - это нормально.
Тогда, конечно, мое приложение должно быть способно создать экземпляр этого класса.
Я вижу два решения:
1) Компиляция в то время как приложение работает, поставить классы где-то на пути к классам, а затем просто загружать классы, делая вид, что они всегда были там.
2) Какой-то более умный способ - вызов API компилятора и некоторая магия для загрузки классов, чтобы увидеть, как мой системный загрузчик классов видит их.
Как мне сделать вариант 2)?
Любые другие идеи?