The com.sun.source.*
packages provide the Compiler Tree API:
an API for accessing the abstract trees (ASTs) representing Java source code
and documentation comments, used by javac, javadoc and related tools.
This module provides the equivalent of command-line access to javac
via the ToolProvider
and
javax.
service provider interfaces (SPIs),
and more flexible access via the JavaCompiler
SPI.
Instances of the tools can be obtained by calling
ToolProvider.
or the service loader with the name
"javac"
.
In addition, instances of javax.
obtained from JavaCompiler can be
downcast to JavacTask
for access to
lower level aspects of javac, such as the
Abstract Syntax Tree
(AST).
This module uses the FileSystemProvider
API to locate file system providers. In particular,
this means that a jar file system provider, such as that in the
jdk.zipfs
module, must be available if the compiler is to be able
to read JAR files.
The -J
option is not supported.
Any necessary VM options must be set in the VM used to invoke the API.
IllegalArgumentException
will be thrown if the option
is used when invoking the tool through the JavaCompiler
API;
an error will be reported if the option is used when invoking
javac through the ToolProvider
or legacy Main
API.
The "classpath wildcard" feature is not supported.
The feature is only supported by the native launcher.
When invoking the tool through its API, all necessary jar
files should be included directly in the --class-path
option, or the CLASSPATH
environment variable.
When invoking the tool through its API, all components of the
class path will be taken literally, and will be ignored if there
is no matching directory or file. The -Xlint:paths
option can be used to generate warnings about missing components.
JavaCompiler
interface.
Argument files (so-called @-files) are not supported.
The content of any such files should be included directly
in the list of options provided when invoking the tool
though this API.
IllegalArgumentException
will be thrown if
the option is used when invoking the tool through this API.
The environment variable JDK_JAVAC_OPTIONS
is not supported.
Any options defined in the environment variable should be included
directly in the list of options provided when invoking the
API; any values in the environment variable will be ignored.
Options that are just used to obtain information (such as
--help
, --help-extended
, --version
and
--full-version
) are not supported.
IllegalArgumentException
will be thrown if any of
these options are used when invoking the tool through this API.
JavaCompiler#getTask
. The "standard"
options, such as --class-path
, --module-path
,
and so on are available when using the default file manager,
or one derived from it. These options may not be available
and different options may be available, when using a different
file manager.
IllegalArgumentException
will be thrown if any option
that is unknown to the tool or the file manager is used when
invoking the tool through this API.
CLASSPATH
environment variable is honored
when invoking the compiler through its API, although such use is discouraged.
An environment variable cannot be unset once a VM has been started,
and so it is recommended to ensure that the environment variable is not set
when starting a VM that will be used to invoke the compiler.
However, if a value has been set, any such value can be overridden by
using the --class-path
option when invoking the compiler,
or setting StandardLocation#CLASS_PATH
in the file manager
when invoking the compiler through the JavaCompiler
interface.
@SuppressWarnings
.
String | Suppress Warnings About ... |
---|---|
auxiliaryclass | an auxiliary class that is hidden in a source file, and is used from other files |
cast | use of unnecessary casts |
classfile | issues related to classfile contents |
deprecation | use of deprecated items |
dep-ann | items marked as deprecated in a documentation comment but not
using the @Deprecated annotation
|
divzero | division by constant integer 0
|
empty | empty statement after if
|
exports | issues regarding module exports |
fallthrough | falling through from one case of a switch statement to
the next
|
finally | finally clauses that do not terminate normally
|
incubating | use of incubating modules |
lossy-conversions | possible lossy conversions in compound assignment |
missing-explicit-ctor | missing explicit constructors in public and protected classes in exported packages |
module | module system related issues |
opens | issues regarding module opens |
overloads | issues regarding method overloads |
overrides | issues regarding method overrides |
path | invalid path elements on the command line |
preview | use of preview language features |
rawtypes | use of raw types |
removal | use of API that has been marked for removal |
restricted | use of restricted methods |
requires-automatic | use of automatic modules in the requires clauses
|
requires-transitive-automatic | automatic modules in requires transitive
|
serial | Serializable classes
that do not have a serialVersionUID field, or other
suspect declarations in Serializable and
Externalizable classes
and interfaces
|
static | accessing a static member using an instance |
strictfp | unnecessary use of the strictfp modifier
|
synchronization | synchronization attempts on instances of value-based classes |
text-blocks | inconsistent white space characters in text block indentation |
this-escape | superclass constructor leaking this before subclass initialized
|
try | issues relating to use of try blocks
(that is, try-with-resources)
|
unchecked | unchecked operations |
varargs | potentially unsafe vararg methods |
doclint:accessibility | accessibility issues found in documentation comments |
doclint:all | all issues found in documentation comments |
doclint:html | HTML issues found in documentation comments |
doclint:missing | missing items in documentation comments |
doclint:reference | reference issues found in documentation comments |
doclint:syntax | syntax issues found in documentation comments |
Modifier and Type | Package and Description |
---|---|
exported package | com.
Provides interfaces to represent documentation comments as abstract syntax trees (AST). |
exported package | com.
Provides interfaces to represent source code as abstract syntax trees (AST). |
exported package | com.
Provides utilities for operations on abstract syntax trees (AST). |
package | com.
Exported to |
exported package | com.
This package provides a legacy entry point for the javac tool. |
package | com.
Exported to |
package | com.
Exported to |
package | com.
Exported to |
package | com.
Exported to |
package | com.
Exported to |
internal package | |
package | com.
Exported to |
package | com.
Exported to |
package | com.
Exported to |
package | com.
An internal API for plugging in --release implementations. Exported to |
internal package | |
package | com.
Exported to |
package | com.
Exported to |
package | com.
Exported to |
package | jdk.
Exported to |
internal package | |
internal package | |
internal package |