Создание экземпляра объекта из исходного кода, скомпилированного на лету

Я хотел бы знать, есть ли возможность экземпляра класса внешнего файла

Например: Oreja oreja_object = getClassFromExternalFile("C:\oreja_file.java");

Спасибо, Кристина.


person cricap    schedule 07.06.2013    source источник
comment
Интересно, есть ли способ, которым это может быть полезно. Вы должны просто добавить файл в качестве источника.   -  person Peter Jaloveczki    schedule 07.06.2013
comment
Возможно, вы могли бы использовать JavaCompiler API   -  person vineet    schedule 07.06.2013
comment
@PeterJaloveczki Один из вариантов использования, который я мог бы представить, — это система плагинов, в которой конечные пользователи могут добавлять сторонние плагины, распространяемые в виде файлов .java, в приложение, помещая их в какой-либо каталог.   -  person Philipp    schedule 07.06.2013
comment
Моя идея заключается в разработке приложения, которое принимает внешний файл .java (или предварительно скомпилированный файл .class) и создает экземпляр этого объекта в моей программе. Моя цель - динамически протестировать общий веб-сервис. Представьте себе веб-сервис, который ожидает json-массив из 5 сущностей, но этих сущностей нет в проекте. Итак, я беру файл, создаю N объектов, отправляю их в веб-службы и получаю результат. Это основная идея   -  person cricap    schedule 07.06.2013


Ответы (1)


Кристина, вы можете динамически загружать внешние .class файлы, используя пользовательский ClassLoader, например URLClassLoader. Взгляните на этот вопрос.

Вы не можете загрузить исходный файл .java напрямую. Сначала его необходимо скомпилировать, например, с помощью компилятора Java. API.

person Jens Birger Hahn    schedule 07.06.2013
comment
Спасибо! Я посмотрю на это :) - person cricap; 07.06.2013