public interface ICompiler
| Modifier and Type | Field and Description |
|---|---|
static ResourceCreator |
CREATE_NEXT_TO_SOURCE_FILE
Special value for
setClassFileCreator(ResourceCreator): Indicates that .class resources are to be
created in the directory of the .java resource from which they are generated. |
static ResourceFinder |
FIND_NEXT_TO_SOURCE_FILE
Special value for
setClassFileFinder(ResourceFinder). |
static File |
NO_DESTINATION_DIRECTORY
Special value for
setDestinationDirectory(File, boolean)'s first parameter: Indicates that .class files
are to be created in the directory of the .java file from which they are generated. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
compile(File[] sourceFiles)
Reads a set of Java compilation units (a.k.a.
|
void |
compile(Resource[] sourceResources)
See
compile(File[]). |
void |
setBootClassPath(File[] directoriesAndArchives)
Equivalent of
--boot-class-path. |
void |
setCharacterEncoding(String characterEncoding)
Deprecated.
Use
setSourceCharset(Charset) instead |
void |
setClassFileCreator(ResourceCreator classFileCreator)
This
ResourceCreator is used to store generated .class files. |
void |
setClassFileFinder(ResourceFinder classFileFinder)
This
ResourceFinder is used to check whether a .class resource already exists and is younger
than the .java resource from which it was generated. |
void |
setClassFileFinder(ResourceFinder classFileFinder,
boolean rebuild)
Equivalent with {@code setClassFileFinder(rebuild ?
|
void |
setClassPath(File[] directoriesAndArchives)
Equivalent of
--class-path.
|
void |
setCompileErrorHandler(ErrorHandler errorHandler)
By default,
CompileExceptions are thrown on compile errors, but an application my install its own
ErrorHandler. |
void |
setDebugLines(boolean value)
Equivalent of
-g:lines. |
void |
setDebugSource(boolean value)
Equivalent of
-g:source. |
void |
setDebugVars(boolean value)
Equivalent of
-g:vars. |
void |
setDestinationDirectory(File destinationDirectory,
boolean rebuild)
Equivalent of
-d and
-rebuild. |
void |
setEncoding(Charset encoding)
The equivalent of JAVA's "
-encoding" command line option. |
void |
setExtensionDirectories(File[] directories)
Equivalent of
-extdirs. |
void |
setSourceCharset(Charset charset)
Same as
setEncoding(Charset), but with a more precise name. |
void |
setSourceFinder(ResourceFinder sourceFinder)
Finds more
.java resources that need to be compiled, i.e. implements JAVAC's -sourcepath option. |
void |
setSourcePath(File[] directoriesAndArchives)
Equivalent of
--source-path. |
void |
setVerbose(boolean verbose)
Equivalent of
-verbose. |
void |
setWarningHandler(WarningHandler warningHandler)
By default, warnings are discarded, but an application my install a custom
WarningHandler. |
@Nullable static final File NO_DESTINATION_DIRECTORY
setDestinationDirectory(File, boolean)'s first parameter: Indicates that .class files
are to be created in the directory of the .java file from which they are generated.static final ResourceFinder FIND_NEXT_TO_SOURCE_FILE
setClassFileFinder(ResourceFinder).setClassFileFinder(ResourceFinder)static final ResourceCreator CREATE_NEXT_TO_SOURCE_FILE
setClassFileCreator(ResourceCreator): Indicates that .class resources are to be
created in the directory of the .java resource from which they are generated.void setEncoding(Charset encoding)
-encoding" command line option.setSourceCharset(Charset)void setSourceCharset(Charset charset)
setEncoding(Charset), but with a more precise name.@Deprecated void setCharacterEncoding(@Nullable String characterEncoding)
setSourceCharset(Charset) insteadvoid setDebugLines(boolean value)
-g:lines.void setDebugVars(boolean value)
-g:vars.void setDebugSource(boolean value)
-g:source.void setSourceFinder(ResourceFinder sourceFinder)
.java resources that need to be compiled, i.e. implements JAVAC's -sourcepath option.void setSourcePath(File[] directoriesAndArchives)
--source-path.
Equivalent with setSourceFinder(new PathResourceFinder(directoriesAndArchives)).
void setBootClassPath(File[] directoriesAndArchives)
--boot-class-path.void setExtensionDirectories(File[] directories)
-extdirs.void setClassPath(File[] directoriesAndArchives)
void setDestinationDirectory(@Nullable File destinationDirectory, boolean rebuild)
-rebuild.
Overrides any previously configured class file finder and class file creator.
destinationDirectory - NO_DESTINATION_DIRECTORY means "create .class resources in
the directory of the .java resource from which they are generated"NO_DESTINATION_DIRECTORY,
setClassFileFinder(ResourceFinder),
setClassFileCreator(ResourceCreator)void setClassFileFinder(ResourceFinder classFileFinder, boolean rebuild)
setClassFileFinder(rebuild ? ResourceFinder.EMPTY_RESOURCE_FINDER : classFileFinder).void setClassFileFinder(ResourceFinder classFileFinder)
ResourceFinder is used to check whether a .class resource already exists and is younger
than the .java resource from which it was generated.
If it is impossible to check whether an already-compiled class file exists, or if you want to enforce
recompilation, pass ResourceFinder.EMPTY_RESOURCE_FINDER as the classFileFinder.
The default is, as for JAVAC, FIND_NEXT_TO_SOURCE_FILE.
classFileFinder - Special value FIND_NEXT_TO_SOURCE_FILE means ".class file is next to
its source file, not in the destination directory"FIND_NEXT_TO_SOURCE_FILEvoid setClassFileCreator(ResourceCreator classFileCreator)
ResourceCreator is used to store generated .class files.
The default is, as for JAVAC, CREATE_NEXT_TO_SOURCE_FILE.
classFileCreator - Special value CREATE_NEXT_TO_SOURCE_FILE means "create .class file
next to its source file, not in the destination directory"CREATE_NEXT_TO_SOURCE_FILEvoid setVerbose(boolean verbose)
-verbose.boolean compile(File[] sourceFiles) throws CompileException, IOException
For example, if the source path comprises the directories "A/B" and "../C", then the source file for class "com.acme.Main" is searched in
Notice that it does make a difference whether you pass multiple source files to compile(File[]) or if
you invoke compile(File[]) multiply: In the former case, the source files may contain arbitrary
references among each other (even circular ones). In the latter case, only the source files on the source path
may contain circular references, not the sourceFiles.
This method must be called exactly once after object construction.
Compile errors are reported as described at setCompileErrorHandler(ErrorHandler).
sourceFiles - Contain the compilation units to compiletrue for backwards compatibility (return value can safely be ignored)CompileException - Fatal compilation error, or the CompileException thrown be the installed
compile error handlerIOException - Occurred when reading from the sourceFilesvoid compile(Resource[] sourceResources) throws CompileException, IOException
compile(File[]).sourceResources - Contain the compilation units to compileCompileExceptionIOExceptionvoid setCompileErrorHandler(@Nullable ErrorHandler errorHandler)
CompileExceptions are thrown on compile errors, but an application my install its own
ErrorHandler.
Be aware that a single problem during compilation often causes a bunch of compile errors, so a good ErrorHandler counts errors and throws a CompileException when a limit is reached.
If the given ErrorHandler throws CompileExceptions, then the compilation is terminated and
the exception is propagated.
If the given ErrorHandler does not throw CompileExceptions, then the compiler may or may not
continue compilation, but must eventually throw a CompileException.
In other words: The ErrorHandler may throw a CompileException or not, but the compiler must
definitely throw a CompileException if one or more compile errors have occurred.
errorHandler - null to restore the default behavior (throwing a CompileExceptionvoid setWarningHandler(WarningHandler warningHandler)
WarningHandler.warningHandler - null to indicate that no warnings be issuedCopyright © 2020. All rights reserved.