He encontrado una buena respuesta se explica aquí:
http://www.exampledepot.com/egs/java.lang/reloadclass.html
Lo importante es tener dos carpetas de archivos binarios, en mi caso: uno para los casos de prueba y otro para la fuente del programa.
Cita:
URL[] urls = null;
try {
// Convert the file object to a URL
File dir = new File(System.getProperty("user.dir")
+File.separator+"dir"+File.separator);
URL url = dir.toURL(); // file:/c:/almanac1.4/examples/
urls = new URL[]{url};
} catch (MalformedURLException e) {
}
try {
// Create a new class loader with the directory
ClassLoader cl = new URLClassLoader(urls);
// Load in the class
Class cls = cl.loadClass("MyReloadableClassImpl");
Cargué una clase compilada de código fuente de JavaCompiler con loadClass ("cadena"), luego ejecuto esta clase con JUnitCore. Después de eso, edito el código fuente en * .java, lo compilo con JavaCompiler y quiero volver a cargarlo. – ctekk
Pregunta interesante para un buen caso de uso. +1 –