Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Compilar;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.lang.reflect.Method;
- import javax.tools.JavaCompiler;
- import javax.tools.ToolProvider;
- public class Compilador implements ICompilador{
- @Override
- public String compilar(String codigo, String caminhoAplicacao , String nomeArquivo){
- FileOutputStream errorStream = null;
- try {
- salvaCodigo(codigo,caminhoAplicacao + "\\arquivos\\" + nomeArquivo );
- errorStream = new FileOutputStream(caminhoAplicacao+"\\erros.txt");
- } catch (FileNotFoundException e) {
- return "ERRO";
- } catch (IOException e) {
- return "ERRO";
- }
- JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
- compiler.run(null, null, errorStream, caminhoAplicacao + "\\arquivos\\" + nomeArquivo);
- try {
- return leArquivoErros(caminhoAplicacao + "\\erros.txt");
- } catch (IOException e) {
- return "ERRO";
- }
- }
- private String leArquivoErros(String caminho) throws IOException {
- BufferedReader leitor = new BufferedReader(new FileReader(caminho));
- String conteudo = leitor.readLine();
- String aux = "";
- while((aux = leitor.readLine()) != null){
- conteudo += "\n" + aux;
- }
- leitor.close();
- return conteudo;
- }
- @Override
- public void executar(String caminho) {
- try {
- Class h = Class.forName(caminho);
- Method [] metodos = h.getMethods();
- for(Method met : metodos){
- System.out.println(met.getName());
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
- public void salvaCodigo( String conteudo , String caminho ) throws IOException{
- BufferedWriter saida = new BufferedWriter( new FileWriter(caminho));
- saida.write(conteudo);
- saida.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement