Pregunta

Estoy a punto de comenzar a desarrollar una pequeña aplicación de escritorio Java. La aplicación es sólo un motor para el que el usuario proporciona las clases de Java para hacer el trabajo (la traducción de entrada a la salida).

Me gustaría que el usuario proporcione clases reales de Java como archivos que se pueden cargar (y Reloaded) sobre la marcha.

Para este uso particular, ¿hay alguna razón por la que Java sería más engorroso que Groovy o Beanshell? No estoy pidiendo una comparación de Groovy / Beanshell y Java, ya que hay muchos. Más bien, quiero saber si es más fácil para cargar dinámicamente clases Groovy o beanshell de archivos en comparación con Java.

En Java 1.6, es el JavaCompiler la mejor manera de cargar dinámicamente el código? Me gustaría utilizar todas las características del lenguaje, así que creo Janino está fuera. Además, cualquier problema con la recarga?

Nota: He visto y href="https://stackoverflow.com/questions/566239/options-for-dynamic-compilation-in-java-5"> este , pero no estoy seguro de que responder a mi pregunta.

¿Fue útil?

Solución

JavaCompiler es muy versátil, pero conlleva un problema de configuración de menor importancia, potencial: En javax.tools , ToolProvider.getSystemJavaCompiler () identifica la clase del compilador como com.sun.tools.javac.api.JavacTool. En algunas plataformas, esa clase no es parte de la JRE; un JDK parece ser necesario. Aquí es un ejemplo .

Ten en cuenta también javax.script , aquí . Varios son compatibles.

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