| Modifier and Type | Field and Description |
|---|---|
protected File[] |
bootClassPath
This is always non-
null for JVMs that support BOOTCLASSPATH (1.0-1.8), and
this is always null for JVMs that don't (9+). |
protected ResourceCreator |
classFileCreator
Implements the "write side" of the JAVAC
-d option. |
protected ResourceFinder |
classFileFinder
Implements the "read side" of the JAVAC
-d option. |
protected File[] |
classPath
The classpath of the currently executing JRE.
|
protected ErrorHandler |
compileErrorHandler
Stores the value configured with
setCompileErrorHandler(ErrorHandler). |
protected boolean |
debugLines
Implements the JAVAC
-g:lines option. |
protected boolean |
debugSource
Implements the JAVAC
-g:source option. |
protected boolean |
debugVars
Implements the JAVAC
-g:vars option. |
protected File[] |
extensionDirectories
The list of extension directories of the currently executing JRE.
|
Charset |
sourceCharset
Implements the JAVAC
-encoding option. |
protected ResourceFinder |
sourceFinder
Implements the JAVAC
-sourcepath option. |
protected int |
sourceVersion |
protected int |
targetVersion |
protected WarningHandler |
warningHandler
Stores the value configured with
setWarningHandler(WarningHandler). |
CREATE_NEXT_TO_SOURCE_FILE, FIND_NEXT_TO_SOURCE_FILE, NO_DESTINATION_DIRECTORY| Constructor and Description |
|---|
AbstractCompiler() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
compile(File[] sourceFiles)
Reads a set of Java compilation units (a.k.a.
|
void |
setBootClassPath(File[] directoriesAndArchives)
Equivalent of
--boot-class-path. |
void |
setCharacterEncoding(String characterEncoding) |
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 destination,
boolean rebuild)
Equivalent with {@code setClassFileFinder(rebuild ?
|
void |
setClassPath(File[] directoriesAndArchives)
Equivalent of
--class-path.
|
void |
setCompileErrorHandler(ErrorHandler compileErrorHandler)
Installs an
ErrorHandler which is invoked during compilation on each error. |
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
ICompiler.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 |
setSourceVersion(int version)
Specifies the version of source code accepted, in analogy with JAVAC's
-source command line option. |
void |
setTargetVersion(int version)
Generates class files that target a specified release of the virtual machine, in analogy with JAVAC's
-target command line option. |
void |
setWarningHandler(WarningHandler warningHandler)
By default, warnings are discarded, but an application my install a custom
WarningHandler. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcompile, setVerboseprotected ResourceFinder sourceFinder
-sourcepath option.protected ResourceFinder classFileFinder
-d option.protected ResourceCreator classFileCreator
-d option.public Charset sourceCharset
-encoding option.protected boolean debugSource
-g:source option.protected boolean debugLines
-g:lines option.protected boolean debugVars
-g:vars option.protected int sourceVersion
protected int targetVersion
protected File[] extensionDirectories
protected File[] classPath
@Nullable protected File[] bootClassPath
null for JVMs that support BOOTCLASSPATH (1.0-1.8), and
this is always null for JVMs that don't (9+).@Nullable protected ErrorHandler compileErrorHandler
setCompileErrorHandler(ErrorHandler).@Nullable protected WarningHandler warningHandler
setWarningHandler(WarningHandler).public void setSourceFinder(ResourceFinder sourceFinder)
ICompiler.java resources that need to be compiled, i.e. implements JAVAC's -sourcepath option.setSourceFinder in interface ICompilerpublic final void setClassFileFinder(ResourceFinder destination, boolean rebuild)
ICompilersetClassFileFinder(rebuild ? ResourceFinder.EMPTY_RESOURCE_FINDER : classFileFinder).setClassFileFinder in interface ICompilerpublic void setClassFileFinder(ResourceFinder classFileFinder)
ICompilerResourceFinder 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, ICompiler.FIND_NEXT_TO_SOURCE_FILE.
setClassFileFinder in interface ICompilerclassFileFinder - Special value ICompiler.FIND_NEXT_TO_SOURCE_FILE means ".class file is next to
its source file, not in the destination directory"ICompiler.FIND_NEXT_TO_SOURCE_FILEpublic final void setClassFileCreator(ResourceCreator classFileCreator)
ICompilerResourceCreator is used to store generated .class files.
The default is, as for JAVAC, ICompiler.CREATE_NEXT_TO_SOURCE_FILE.
setClassFileCreator in interface ICompilerclassFileCreator - Stores the generated class files (a.k.a. "-d"); special value ICompiler.CREATE_NEXT_TO_SOURCE_FILE means "create each .class file in the same directory as
its source file"ICompiler.CREATE_NEXT_TO_SOURCE_FILEpublic final boolean compile(File[] sourceFiles) throws CompileException, IOException
ICompilerFor 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 ICompiler.compile(File[]) or if
you invoke ICompiler.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 ICompiler.setCompileErrorHandler(ErrorHandler).
compile in interface ICompilersourceFiles - 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 sourceFilespublic final void setEncoding(Charset encoding)
ICompiler-encoding" command line option.setEncoding in interface ICompilerICompiler.setSourceCharset(Charset)public void setSourceCharset(Charset charset)
ICompilerICompiler.setEncoding(Charset), but with a more precise name.setSourceCharset in interface ICompilerpublic final void setCharacterEncoding(@Nullable String characterEncoding)
setCharacterEncoding in interface ICompilerpublic void setDebugLines(boolean value)
ICompiler-g:lines.setDebugLines in interface ICompilerpublic void setDebugVars(boolean value)
ICompiler-g:vars.setDebugVars in interface ICompilerpublic void setDebugSource(boolean value)
ICompiler-g:source.setDebugSource in interface ICompilerpublic void setSourceVersion(int version)
ICompiler-source command line option.
May be ignored by an implementation (e.g. the janino implementation always accepts the language features
as described on the home page).
Allowed values, and the default value, depend on the implementation.
-1 means to use a default version.setSourceVersion in interface ICompilerpublic void setTargetVersion(int version)
ICompiler-target command line option.
Allowed values depend on the implementation.
The default value also depends on the implementation.
The only invariant is that the generated class files are suitable for the currently executing JVM.
-1 means to use a default version.setTargetVersion in interface ICompilerpublic void setSourcePath(File[] directoriesAndArchives)
ICompiler--source-path.
Equivalent with setSourceFinder(new PathResourceFinder(directoriesAndArchives)).
setSourcePath in interface ICompilerpublic void setBootClassPath(File[] directoriesAndArchives)
ICompiler--boot-class-path.setBootClassPath in interface ICompilerpublic void setExtensionDirectories(File[] directories)
ICompiler-extdirs.setExtensionDirectories in interface ICompilerpublic void setClassPath(File[] directoriesAndArchives)
ICompilersetClassPath in interface ICompilerpublic final void setDestinationDirectory(@Nullable File destinationDirectory, boolean rebuild)
ICompiler-rebuild.
Overrides any previously configured class file finder and class file creator.
setDestinationDirectory in interface ICompilerdestinationDirectory - ICompiler.NO_DESTINATION_DIRECTORY means "create .class resources in
the directory of the .java resource from which they are generated"ICompiler.NO_DESTINATION_DIRECTORY,
ICompiler.setClassFileFinder(ResourceFinder),
ICompiler.setClassFileCreator(ResourceCreator)public void setCompileErrorHandler(@Nullable ErrorHandler compileErrorHandler)
ICompilerErrorHandler which is invoked during compilation on each error. (By default, the compilation
throws a CompileException on the first error and terminates.)
If the given ErrorHandler throws a CompileException, then the compilation terminates and
the exception is propagated.
If the given ErrorHandler does not throw a CompileException but completes normally, then the
compilation may or may not continue, depending on the error. Iff the compilation of a compilation unit
completes normally but errors were reported, then it will throw a CompileException indicating the
number of errors.
In other words: The ErrorHandler may throw a CompileException or not, but the compilation will
definitely throw a CompileException if one or more compile errors have occurred.
setCompileErrorHandler in interface ICompilercompileErrorHandler - null to restore the default behavior (throwing a CompileException)public void setWarningHandler(@Nullable WarningHandler warningHandler)
ICompilerWarningHandler.setWarningHandler in interface ICompilerwarningHandler - null to indicate that no warnings be issuedCopyright © 2022. All rights reserved.