Как вы динамически компилируете и загружаете внешние Java-классы? [Дубликат]

На этот вопрос уже есть ответ здесь:

Как обеспечить интерфейс для JavaCompiler при динамической компиляции исходного файла? 4 ответа

(Этот вопрос похож на многие вопросы, которые я видел, но большинство не достаточно конкретны для того, что я делаю)

Фон:

Цель моей программы - упростить людям, которые используют мою программу, так сказать, создание собственных «плагинов», а затем скомпилировать и загрузить их в программу для использования (против использования в моей программе неполного, медленного синтаксического анализатора). Моя программа позволяет пользователям вводить код в предопределенный класс, расширяющий скомпилированный класс, упакованный с моей программой. Они вводят код в текстовые панели, затем моя программа копирует код в переопределяемые методы. Затем он сохраняет это как файл .java (почти), готовый для компилятора. Программа запускает javac (компилятор java) с сохраненным файлом .java в качестве входных данных.

Мой вопрос: как мне получить его, чтобы клиент мог (используя мою скомпилированную программу) сохранить этот java-файл (который расширяет мой InterfaceExample) в любом месте на своем компьютере, чтобы моя программа скомпилировала его (не говоря «не могу найти символ: InterfaceExample») ) затем загрузить его и вызвать метод doSomething ()?

Я продолжаю видеть вопросы и ответы, использующие отражение или ClassLoader, и тот, который почти описывает, как его скомпилировать, но ни один из них не достаточно подробен для меня / я не понимаю их полностью.

Ответы на вопрос(2)

Ваш ответ на вопрос