Java by API/javax.tools/DiagnosticCollector

Материал из Java эксперт
Перейти к: навигация, поиск

DiagnosticCollector: getDiagnostics()

   <source lang="java">
    

import java.io.File; import java.util.ArrayList; import java.util.List; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; import javax.tools.JavaCompiler.rupilationTask; public class Main {

 public static void main(String[] args) throws Exception {
   String sourceFile = "c:/HelloWorld.Java";
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
   List<File> sourceFileList = new ArrayList<File>();
   sourceFileList.add(new File(sourceFile));
   Iterable<? extends JavaFileObject> compilationUnits = fileManager
       .getJavaFileObjectsFromFiles(sourceFileList);
   CompilationTask task = compiler.getTask(null, fileManager, null, null, null, compilationUnits);
   task.call();
   fileManager.close();
   List<Diagnostic<? extends JavaFileObject>> diagnosticList = diagnostics.getDiagnostics();
   for (Diagnostic<? extends JavaFileObject> diagnostic : diagnosticList) {
     System.out.println("Position:" + diagnostic.getStartPosition());
   }
 }

}



 </source>
   
  
 
  



new DiagnosticCollector()

   <source lang="java">
    

import java.io.File; import java.util.ArrayList; import java.util.List; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; import javax.tools.JavaCompiler.rupilationTask; public class Main {

 public static void main(String[] args) throws Exception {
   String sourceFile = "c:/HelloWorld.Java";
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
   List<File> sourceFileList = new ArrayList<File>();
   sourceFileList.add(new File(sourceFile));
   Iterable<? extends JavaFileObject> compilationUnits = fileManager
       .getJavaFileObjectsFromFiles(sourceFileList);
   CompilationTask task = compiler.getTask(null, fileManager, null, null, null, compilationUnits);
   task.call();
   fileManager.close();
   List<Diagnostic<? extends JavaFileObject>> diagnosticList = diagnostics.getDiagnostics();
   for (Diagnostic<? extends JavaFileObject> diagnostic : diagnosticList) {
     System.out.println("Position:" + diagnostic.getStartPosition());
   }
 }

}



 </source>