Recarga de clase en java en tiempo de ejecución

Hola, tengo un problema. En mi aplicación de escritorio que estoy haciendo quiero cargar una clase que creo desde un JTextArea y compilarla para que me de un resultado. El caso es que cuando la modifico y la compilo, me devuelve el valor de la compilación anterior, no de la nueva modificada (si la modifico 3 o 4 veces sigue saliendo el valor de la clase antes de la ejecución del programa). Éste es el código que uso:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
FileOutputStream errorStream = new FileOutputStream("Errors.txt");
int compilationResult = compiler.run(null, null, errorStream, "-verbose", fileToCompile);
pfc.Temp result = new pfc.Temp();
//Otra forma
Class<?> c = Class.forName("pfc.Temp");
pfc.Temp temp = (pfc.Temp)c.newInstance();
Class[] argTypes = new Class[] { float[].class };
Method main = c.getDeclaredMethod("getResult", argTypes);
float nts[] = new float[model.getColumnCount()];
for(int i = 0; i < model.getRowCount(); i++){
System.err.println("Voy a la fila: "+i+" de "+model.getRowCount());
for(int j = 1; j < model.getColumnCount(); j++){
nts[j] = Float.parseFloat(model.getValueAt(i,j).toString());
System.err.println("Notas parciales: "+nts[j]+" de la columna "+j+" sobre "+model.getColumnCount());
}
}
Object comp = main.invoke(temp, (Object) nts);
System.out.println("---- Resultado de compilación ---- "+comp.toString());

Añade tu respuesta

Haz clic para o