Мне кажется, что Java Compiler API позволяет компилировать во время выполнения класс, записывая его вывод (файл .class) в файловую систему. Однако компиляция в памяти не поддерживается. Это верно ? или можно использовать этот API для компиляции класса в памяти (из строки) и последующего создания экземпляра такого класса?
(Я знаю, что могу скомпилировать класс в файловую систему и затем загрузить его с помощью специального загрузчика классов, но мне интересно, могу ли я скомпилировать его в памяти, минуя файловую систему).
Есть ли другой альтернативный механизм для компиляции памяти с использованием только J2SE? BeanShell (библиотека, которая может делать то, что я хочу) упоминает на своей веб-странице, что она может быть включена однако в J2SE "в какой-то момент в будущем" статус его JSR является «спящим» (что бы это ни значило).
Обновление:
В идеале я хотел бы знать, можно ли это сделать только с J2SE (или есть ли какие-либо ожидаемые улучшения для J2SE, которые позволят мне сделать это, например, в Java 8). Тем не менее, советы о том, как это сделать, требуя установки JDK, также приветствуются (спасибо Evgeniy).