Compilar classe Java em tempo de execução

Ae galera,

To precisando compilar classes em tempo de execução, mas não quero usar o disco para gravar um arquivo com extensão .java e depois passar o nome do arquivo para a classe Compiler compilar.

Gostaria de fazer isso na memória, alguém sabe como?

Agradeço antecipadamente

Roberto

Olha a API do ECJ, provavelmente ela te permite fazer isso

obrigado por enquanto.

Vou dar uma olhada. Nunca usei esta API.

Se você quer se aprofundar com o assunto, recomendo o livro Java Reflection in Action, publicado pela Manning. O capítulo 7 trata especialmente do tópico.

String arquivo2 = “minhaClasse.java”
PrintWriter saida = new PrintWriter(new FileWriter(“logCompilacao.txt”));

int resultadoCompilacao = com.sun.tools.javac.Main.compile(new String[]{arquivo2},saida);