import javax.tools.Diagnostic;
import javax.tools.DiagnosticCollector;
import javax.tools.JavaCompiler;
import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
public class Main {
public static void main(String[] args) {
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> dc = new DiagnosticCollector<JavaFileObject>();
StandardJavaFileManager sjfm = compiler.getStandardFileManager(dc, null, null);
Iterable<? extends JavaFileObject> fileObjects = sjfm.getJavaFileObjects(args);
compiler.getTask(null, sjfm, dc, null, null, fileObjects).call();
for (Diagnostic d : dc.getDiagnostics()) {
System.out.println(d.getMessage(null));
System.out.printf("Line number = %d\n", d.getLineNumber());
System.out.printf("File = %s\n", d.getSource());
}
}
}
|