Como compilar e carregar uma classe programaticamente

Demonstra como salvar como arquivo uma classe contida em uma String, compilar programaticamente esse arquivo e executar o Bytecode.

Esse código não funcionará sem adaptações em IDEs como IntelliJ e Eclipse dado que eles utilizam classpaths personalizados.

Tecnologias utilizadas

  • Java SE 8 (java: 8.0.172-zulu)

1. Código

Crie um arquivo com o nome CompiladorDeClasseProgramatico.java e cole o conteúdo abaixo.

2. Execução

Compile e execute o arquivo.

Saída.

Dois arquivos terão sido criados: UmaClasse.java e UmaClasse.class.

Referências

docs.oracle.com/javase/10/docs/api/javax/tools/ToolProvider.html