Pregunta

¿Hay alguna opción que no sean Janino para compiliation y ejecución de código Java en v5 sobre la marcha? Sé V6 tiene la API del compilador, pero tengo que trabajar con la máquina virtual v5.

Me esencialmente que tomar una cadena que contiene una clase completa de Java, compilarlo y cargarlo en la memoria.

¿Fue útil?

Solución

Lo que queremos es algo así como Janino . Lo hemos usado durante años. Se le da (cerca estándar) de código y le da las clases para que pueda utilizarlos. En realidad, tiene un buen número de modos diferentes y es compatible con el azúcar sintáctica 1,5 y auto-boxeo y tal.

Si se llama a javac, no sólo va a tener que estar listo para cualquier cosa que hace, entonces usted tiene que manejar poner la clase en el lugar correcto o hacer un cargador de clases adicionales.

Janino es muy fácil. Debe ser exactamente lo que busca.

Otros consejos

La invocación de javac programáticamente:

http: // www.juixe.com/techknow/index.php/2006/12/12/invoke-javac-at-runtime/

   com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();  

   String[] options = new String[] 
   {  
      "-classpath", classpath, "-d", outputDir, filename  
   };

   javac.compile(options);

Todos los servidores de aplicaciones hacen esto para JSP para siempre, así que obviamente es posible. código fuente Tomcat Pedido tal vez?

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