Compilação dinâmica para alteração de metodos

Pessoal estou desenvolvendo um game onde o usuario recebe um campo de texto e após isso queria compilar esse campo e ver se ele roda. Se compilasse, queria tentar fazer um metodo que chamasse o conteudo daquela area de texto pra ver se o usuario consegue resolver um eterminado exercicio, como por exemplo em jogos que ensinam programação.
Qual ou quais as formas de eu resolver esse problema?

olha nunca usei mas vi uma aplicação para testar JPA durante meus estudos e utilizava Beanshell

Use uma linguagem de script, como o Groovy. Elas geralmente já tem interpretadores prontos, que podem ser executados de dentro do Java:
http://pontov.com.br/site/java/47-javageral/165-utilizando-scripts-nos-jogos

Mas essas linguagens poderiam ser usadas para interpretar codigo Java?

http://enthuware.com/index.php/mock-exams/oracle-certified-expert/java-persistence-api-oce-jpa/85

veja por si próprio, este exemplo utiliza Beanshell, ou utilize Groovy como o @VinyGodoy disse.