Friday, August 21, 2009

Динамическая компиляция в Java

В строке (или строковом буфере) находится текст программы. Цель - скомпилировать этот код и получить экземпляр созданного на лету класса. Аналог функции eval() в JavaScript, например, когда мы исполняем код в строке.
Это будет реально интересным дополнением к reflection - традиционному для Java методу создания экземпляров класса в динамике. Решается с помощью javax.tools из JDK 6. Исходные тексты примеров можно посмотреть здесь.

2 comments:

Andrey Rybin said...

Как я понимаю - требуется установленный и находимый JDK.

Поэтому пока http://www.janino.net/ IMHO предпочтительнее.

Abava said...

да - JDK6. А в чем недостаток?