Sono in procinto di scrivere un motore di regole che esegue assegnazioni semplici come determinato dai costrutti condizionali. È un prerequisito del progetto che le regole siano in formato XML. Ho modellato il mio schema XML per assomigliare a semplici blocchi di codice. Desidero analizzare l'XML e quindi trasformarlo in codice Java. Quindi desidero compilare (ed eseguire) questo codice in fase di esecuzione. Ciò significherebbe che il mio motore di regole non agisce più come interprete ma esegue il codice byte Java nativo.Come posso compilare e distribuire una classe java in fase di runtime?
Ho capito la fase di analisi e più o meno la fase di generazione del codice Java. Vorrei ora capire l'ultima fase: la compilazione in fase di runtime.
A seguito di questa discussione: Compile to java bytecode (without using Java) sono venuto a conoscenza delle seguenti soluzioni possibili:
Mi piacerebbe un confronto tra questi così come altri suggerimenti per risolvere la compilazione Java in fase di runtime.
Un paio di indicatori per te: 1) scarica il sorgente Tomcat, quando crea le classi per JSP deve fare solo ciò che descrivi. 2) dare un'occhiata a Drools (http://www.jboss.org/drools/). L'ho usato in passato ed è piuttosto potente quando si tratta di motori di regole. –
Hai mai completato questa applicazione? Sarei interessato a vedere come funziona se sei in grado di condividere le fonti. –
@EricB. Sono contento che tu abbia mostrato interesse. Sfortunatamente l'applicazione ha preso una svolta altrove. Ho continuato a utilizzare l'API del compilatore Java 6, ma per un ambito molto più semplice. In altre parole, i blocchi di codice XML vengono interpretati ancora non compilati fino ad oggi ... Non posso pubblicare il codice che ho scritto poiché è proprietario ... – Yaneeve