Pregunta

Estoy escribiendo un intérprete de juguetes con un REPL en Java. Me gustaría generar bytecode del lenguaje y ejecutarlo, en lugar de interpretar un AST y ejecutarlo en su lugar.

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

¿Fue útil?

Solución

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

Otros consejos

Eche un vistazo a Javassist que contiene un compilador de fragmentos que le permite compilar fragmentos de Java para codificar en bytes y definirlos como un método en una clase que luego puede invocar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top