2009-06-25 17 views
5

Escribo un intérprete de juguetes con REPL en Java. Me gustaría generar bytecode del lenguaje y ejecutar eso, en lugar de interpretar un AST y ejecutarlo en su lugar.¿Interpretar algo y ejecutar el bytecode generado en Java?

Dado que mi Java está un poco oxidada, ¿es posible ejecutar bytecode generado sobre la marcha en la JVM?

Respuesta

5

Puede usar java.lang.Classloader.defineClass(), que convierte bytecode en un objeto Class. Puede llamar a newInstance() en el objeto Class resultante y listo.

1

Eche un vistazo a Javassist que contiene un compilador de fragmentos de código que le permite compilar los fragmentos de Java en bytecode y definirlos como un método en una clase que luego puede invocar.

Cuestiones relacionadas