Mega Code Archive

 
Categories / Java by API / Javax Tools
 

Diagnostic

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.CompilationTask; 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());     }   } }