Compile el código completamente en la memoria con javax.tools.JavaCompiler [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo compilar y cargar dinámicamente las clases java externas? [duplicar] 2 respuestas

Estoy usando el JavaCompiler del paquete javax.tools (JDK 1.7) para compilar algunas cosas sobre la marcha, como esto:

compiler.run(null, null, "-cp", paths, "path/to/my/file.java");

Funciona, pero me gustaría hacerlo todo en la memoria (por ejemplo, pasar una cadena con el código, no el archivo de origen, y recuperar el código de byte no un archivo .class). Encontré que extendiendo elInputStream yOutputStream los parámetros no sirven, ya que probablemente sean los mismos que en la consola. ¿Conoces una forma de hacer que el método de ejecución funcione así? ¿O conoce una forma confirmada de hacer esto con elgetTask() ¿método? (extender FileManager parece fácil pero no es tan fácil :)

Respuestas a la pregunta(7)

Su respuesta a la pregunta