Я думаю, ваш лучший снимок будет Янино . Это позволит вам компилировать код во время выполнения и вызывать его из остальной части вашей программы. Мы используем его в некоторых наших системах для динамического обновления некоторых классов.
Это не бесплатно. Он работает хорошо, но использует пространство permgen каждый раз, когда вы загружаете новый класс (или версию класса), так что в конечном итоге вам не хватит памяти, если у вас есть (действительно) долго работающий процесс (или что-то, что загружает много новых классов) ) но вы можете изменить количество пространства permgen в JVM, чтобы убрать этот барьер, если это проблема.
Janino на самом деле является компилятором, но вы могли видеть, как он внедряет байт-код, если вам нужно работать на этом уровне. Возможно, вам придется в конечном итоге создать загрузчик классов или использовать API компилятора Java, как предложил Том Хоутин.