org.codehaus.plexus.compiler.javac

## Class JavacCompiler

- java.lang.Object
- - org.codehaus.plexus.logging.AbstractLogEnabled
  - - org.codehaus.plexus.compiler.AbstractCompiler
    - - org.codehaus.plexus.compiler.javac.JavacCompiler

All Implemented Interfaces:
  Compiler, org.codehaus.plexus.logging.LogEnabled

    public class JavacCompiler
    extends AbstractCompiler

Author:
  Trygve Laugstøl, Matthew Pocock, Jörg Waßmer, Others

### Field Summary

### Fields inherited from class org.codehaus.plexus.compiler.AbstractCompiler

`EOL, PS`

### Fields inherited from interface org.codehaus.plexus.compiler.Compiler

`ROLE`

### Constructor Summary

Constructors
Constructor and Description
`JavacCompiler()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static String[]` `buildCompilerArguments(CompilerConfiguration config, String[] sourceFiles)`
`protected CompilerResult` `compileInProcessWithProperClassloader(Class<?> javacClass, String[] args)`
`protected CompilerResult` `compileOutOfProcess(CompilerConfiguration config, String executable, String[] args)` Compile the java sources in a external process, calling an external executable, like javac.
`String[]` `createCommandLine(CompilerConfiguration config)` Create the command line that would be executed using this configuration.
`protected Class<?>` `createJavacClass()` Helper method for create Javac class
`protected static boolean` `isJava16()`
`CompilerResult` `performCompile(CompilerConfiguration config)` Performs the compilation of the project.

### Methods inherited from class org.codehaus.plexus.compiler.AbstractCompiler

`canUpdateTarget, compile, getCompilerOutputStyle, getInputFileEnding, getOutputFile, getOutputFileEnding, getPathString, getSourceFiles, getSourceFilesForSourceRoot, makeClassName, toStringArray`

### Methods inherited from class org.codehaus.plexus.logging.AbstractLogEnabled

`enableLogging, getLogger, setupLogger, setupLogger, setupLogger`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### JavacCompiler

    public JavacCompiler()

### Method Detail

#### performCompile

    public CompilerResult performCompile(CompilerConfiguration config)
                                  throws CompilerException

Description copied from interface: `Compiler`
Performs the compilation of the project. Clients must implement this method.

Specified by:
  `performCompile` in interface `Compiler`
Overrides:
  `performCompile` in class `AbstractCompiler`
Parameters:
  `config` - the configuration description of the compilation to perform
Returns:
  the result of the compilation returned by the language processor
Throws:
  `CompilerException`

#### isJava16

    protected static boolean isJava16()

#### createCommandLine

    public String[] createCommandLine(CompilerConfiguration config)
                               throws CompilerException

Description copied from interface: `Compiler`
Create the command line that would be executed using this configuration. If this particular compiler has no concept of a command line then returns null.

Parameters:
  `config` - the CompilerConfiguration describing the compilation
Returns:
  an array of Strings that make up the command line, or null if this compiler has no concept of command line
Throws:
  `CompilerException` - if there was an error generating the command line

#### buildCompilerArguments

    public static String[] buildCompilerArguments(CompilerConfiguration config,
                                                  String[] sourceFiles)

#### compileOutOfProcess

    protected CompilerResult compileOutOfProcess(CompilerConfiguration config,
                                                 String executable,
                                                 String[] args)
                                          throws CompilerException

Compile the java sources in a external process, calling an external executable, like javac.

Parameters:
  `config` - compiler configuration
  `executable` - name of the executable to launch
  `args` - arguments for the executable launched
Returns:
  a CompilerResult object encapsulating the result of the compilation and any compiler messages
Throws:
  `CompilerException`

#### compileInProcessWithProperClassloader

    protected CompilerResult compileInProcessWithProperClassloader(Class<?> javacClass,
                                                                   String[] args)
                                                            throws CompilerException

Throws:
  `CompilerException`

#### createJavacClass

    protected Class<?> createJavacClass()
                                 throws CompilerException

Helper method for create Javac class

Throws:
  `CompilerException`