Oi Galera, sou novo aqui no fórum e peço desculpas adiantadas se tiver postando isso no local errado ou se estiver criando algo repetido!
To fazendo um projeto em que eu preciso compilar e rodar uma classe dinamicamente. Tá compilando e gerando o .class de boa, o problema é quando eu tento rodar, eu consigo apenas obter a saída de erros, mas não consigo obter a saída padrão. Eu tó usando o método run() da classe JavaCompiler pra rodar. Abaixo meu código:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
OutputStream saidaPadrao = null;
OutputStream saidaErros = null;
try {
saidaPadrao = new FileOutputStream("C:\\Users\\Desktop\\workspace\\webService\\arquivos\\usuario\\saidaPadrao.txt");
saidaErros = new FileOutputStream("C:\\Users\\Desktop\\workspace\\webService\\arquivos\\usuario\\saidaErros.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
compiler.run(null, saidaPadrao, saidaErros, "C:\\Users\\Desktop\\workspace\\webService\\arquivos\\usuario\\" + arquivoJava.getName());
Os erros, caso existam, ficam salvos no arquivo da saidaErros, mas nunca fica nada no saídaPadrao. A função run está retornando 0 o que indica que esta funcionando, então porque a sáida padrão não é salva no arquivo? Alguém ajuda aí!