public abstract CompilationTask getTask (Writer out, JavaFileManager fileManager, DiagnosticListener<? super JavaFileObject> diagnosticListener, Iterable<String> options, Iterable<String> classes, Iterable<? extends JavaFileObject> compilationUnits)

Creates a future for a compilation task with the given components and arguments. The compilation might not have completed as described in the CompilationTask interface.

If a file manager is provided, it must be able to handle all locations defined in StandardLocation.

Note that annotation processing can process both the compilation units of source code to be compiled, passed with the compilationUnits parameter, as well as class files, whose names are passed with the classes parameter.

Parameters:
out    a Writer for additional output from the compiler; use System.err if null
fileManager    a file manager; if null use the compiler's standard filemanager
diagnosticListener    a diagnostic listener; if null use the compiler's default method for reporting diagnostics
options    compiler options, null means no options
classes    names of classes to be processed by annotation processing, null means no class names
compilationUnits    the compilation units to compile, null means no compilation units

Returns:  an object representing the compilation

Exceptions:
RuntimeException    if an unrecoverable error occurred in a user supplied component. The cause will be the error in user code.
IllegalArgumentException    if any of the options are invalid, or if any of the given compilation units are of other kind than source