Estoy en el proceso de escribir un motor de reglas que realiza asignaciones simples como lo determinan las construcciones condicionales. Es un requisito previo del proyecto que las reglas estén en formato XML. He modelado mi esquema XML para que se parezca a simples bloques de código. Deseo analizar el XML y luego transformarlo en código Java. Luego deseo compilar (y ejecutar) este código en tiempo de ejecución. Si lo hace, mi motor de reglas ya no actuará como intérprete, sino que ejecutará el código nativo de Java Byte.¿Cómo puedo compilar e implementar una clase java en tiempo de ejecución?
He descubierto la etapa de análisis sintáctico y más o menos la fase de generación de código Java. Ahora me gustaría descubrir la última fase: la compilación en la fase de ejecución.
Siguiendo este hilo: Compile to java bytecode (without using Java) me he dado cuenta de las siguientes soluciones posibles:
Me encantaría una comparación de estos, así como otras sugerencias para resolver la compilación de Java en la fase de tiempo de ejecución.
Un par de punteros para usted: 1) descargue la fuente de Tomcat, cuando crea las clases para JSP tiene que hacer exactamente lo que usted describe. 2) eche un vistazo a Drools (http://www.jboss.org/drools/). Lo he usado en el pasado y es bastante poderoso cuando se trata de motores de reglas. –
¿Alguna vez obtuvo esta aplicación completa? Me interesaría ver cómo funciona si puedes compartir las fuentes. –
@EricB. Me alegro de que haya mostrado interés. Lamentablemente, la aplicación dio un giro en otro lugar. Seguí usando la API del compilador Java 6, pero para un alcance mucho más simple. En otras palabras, los bloques de código XML aún se interpretan como no compilados hasta el día de hoy ... No puedo publicar el código que escribí porque es propiedad ... – Yaneeve