Development Java Tutorial

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.tools.Diagnostic;
import javax.tools.DiagnosticCollector;
import javax.tools.JavaCompilerTool;
import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
import javax.tools.JavaCompilerTool.CompilationTask;
public class DiagnosticDemo {
  public static void main(String[] args) {
    String sourceFile = "c:/HelloWorld.Java";
    JavaCompilerTool compiler = ToolProvider.getSystemJavaCompilerTool();
    DiagnosticCollector diagnostics = new DiagnosticCollector();
    StandardJavaFileManager fileManager =
    compiler.getStandardFileManager(diagnostics);
    List sourceFileList = new ArrayList();
    sourceFileList.add(new File(sourceFile));
    Iterable compilationUnits = fileManager
        .getJavaFileObjectsFromFiles(sourceFileList);
    CompilationTask task = compiler.getTask(null, fileManager, null, null, null, compilationUnits);
    task.run();
    try {
      fileManager.close();
    } catch (IOException e) {
    }
    List> diagnosticList = diagnostics.getDiagnostics();
    for (Diagnostic diagnostic : diagnosticList) {
      System.out.println("Position:" + diagnostic.getStartPosition());
    }
  }
}