суббота, 9 апреля 2011 г.

Интерпретация и компиляция Java-кода в Java-программе

Давайте представим, что вам понадобилось в своей Java-программе выполнять некоторый код, порождаемый пользователем, в некотором выстроенном контексте. Причем, хотелось бы, чтобы из пользовательского кода были доступны некоторые классы и объекты, определенные в исходном приложении.
В 6-ой версии платформы Java появилась технология Java Scripting, которая реализована в пакете javax.script. Используя её и какой-либо из реализованных движков (а может быть вы напишите свой движок), можно получить то что мы хотим - Java-программу, исполняющую некоторый код пользователя, который становится известен лишь в runtime. Типично, используют Java Scripting и движок JavaScript (ссылка), более того JavaScript движок Rhino от Mozilla входит в JDK 6. Нас же будет интересовать Java-движок.