Création d’un compilateur: Compiler une fichier java en mode dynamique

Author:


Download

 
  /*
   * Cette Méthode compile un fichier java et retourne le résultat
   */
 
  private String compileJavaFile(String fichier)throws Exception
    {
      String message="";
 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
     DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
     StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
 
     Iterable<? extends JavaFileObject> compilationUnits =
 fileManager.getJavaFileObjects(new File(fichier));
     JavaCompiler.CompilationTask task2 = compiler.getTask(null, fileManager, diagnostics, null, null, compilationUnits);
         Boolean result = task2.call();
      fileManager.close();
       if (!result)
       {
           System.out.println("Compilation failed.");
           message="Compilation à échouée.\n";
        }
      else
       {
        message="Compilation réussie.\n";
       }
       for (Diagnostic<? extends JavaFileObject> d : diagnostics.getDiagnostics())
       {
           System.out.println(1);
        System.out.println(d.getKind() + ": " + d.getMessage(null));
 
        // Spécifier la ligne et la position d'erreur
       message+=d.getKind() + ": " + d.getMessage(null)+": "+d.getCode()+": "+d.getStartPosition()+": "+d.getEndPosition()+"\n";
       }
 
  // Retourner le message d'erreur
  return message;
 
  }