En mi proyecto actual, necesito compilar el código java en tiempo de ejecución (en segundo plano para procesar la entrada del usuario). Esto funciona bien con tools.jar en el classpath. Sin embargo, no todos los usuarios de mi programa tienen JDK instalado en su sistema. Algunos de ellos solo tienen JRE y en ese caso no hay un compilador de Java disponible en tiempo de ejecución. Puedo resolver ese problema incluyendo tools.jar de Sun como parte de mi herramienta.compilador Java en Runtime
Pero tools.jar es muy grande (> 12 MB). El problema es que tengo que incluir el archivo jar grande, aunque solo estoy interesado en una pequeña fracción de la funcionalidad proporcionada por este contenedor.
¿Es posible romper el archivo tools.jar por lo que tengo una pequeño subconjunto de las clases que son requerido para compilar código Java solamente?
¿Esto es ilegal?
Muchas gracias.
Esta es una opción que consideré usar. Sí, es posible usar el compilador Eclipse sin Eclipse. Tuve algunos problemas al usarlo debido a su comportamiento de almacenamiento en memoria caché de subprocesos, es decir, no es posible obtener más de una instancia del compilador de un subproceso. En mi escenario de uso, tengo problemas para hacer un seguimiento de los mensajes de diagnóstico del compilador porque necesito una nueva instancia del compilador cada vez. – Dipmedeep