# Annotation Processing

Annotation processors are utility programs that can generate additional Java code or other files, and produce problem markers, based on Java 5 (JSR-175) annotations. The Annotation Processing preference pane permits configuration of preferences that apply to all processors in a project or workspace. The Factory Path preference pane specifies which processors are enabled and permits configuration of individual processors.

## Enable annotation processing

Annotation processing is turned off by default, and must be turned on by checking this checkbox for each project that needs it. It is only necessary to enable annotation processing in a project in order to have annotation processors operate on that project's code. The mere presence of annotations in code does not mean that annotation processing is required; for example, the `@Deprecated` and `@Override` annotations do not typically require processing.

## Generated source directory

Files will be generated on disk relative to the specified directory. By default this directory is named ".apt_generated", which causes it to be filtered out of the Package Explorer view. Generated files have the "derived" bit set; in a clean, all derived files under the generated source directory will be removed. It is recommended to only use this directory for files generated by processors; do not place any manually created files under this directory, and do not use a pre-existing directory as the generated source directory.

## Processor options

Options entered here will be available to the processors via the AnnotationProcessorEnvironment interface. Certain options are automatically provided to the processors; entering them in this dialog will have no effect, since the automatically provided values will override any values set here. The automatic options are described here. More information about processor options is in the topic on the Processor Options input dialog.