# Eclipse JDT API Specification

Java development tools core packages
org.eclipse.jdt.core: The Java model is the set of classes that model the objects associated with creating, editing, and building a Java program.
org.eclipse.jdt.core.compiler: This package contains compiler associated infrastructure APIs.
org.eclipse.jdt.core.compiler.batch: This package contains the batch compiler API.
org.eclipse.jdt.core.dom: The Java DOM/AST is the set of classes that model the source code of a Java program as a structured document.
org.eclipse.jdt.core.dom.rewrite: The Java DOM/AST rewrite is the set of classes that are used to make changes to an existing DOM/AST tree.
org.eclipse.jdt.core.eval: Provides support for the evaluation of code snippets in a scrapbook or inside the debugger.
org.eclipse.jdt.core.formatter: The code formatter is the set of classes that are used to format Java code.
org.eclipse.jdt.core.index: Provides support for generating indexes that can be used by the JDT search engine.
org.eclipse.jdt.core.jdom: Provides a support for Java document manipulation through the JDOM model.
org.eclipse.jdt.core.manipulation: Application programming interface for the JDT core manipulation plug-in class.
org.eclipse.jdt.core.refactoring: Application programming interface for Java-specified refactoring framework facilities.
org.eclipse.jdt.core.refactoring.descriptors: Application programming interface to access Java refactorings provided by JDT.
org.eclipse.jdt.core.refactoring.participants: Application programming interface to access refactoring participants provided by JDT.
org.eclipse.jdt.core.search: Provides support for searching the workspace Java elements that match a particular description.
org.eclipse.jdt.core.util: Provides a set of tools and utilities for manipulating .class files and Java model elements.

Java development tools UI packages
org.eclipse.jdt.ui: Application programming interfaces for interaction with the Eclipse Java User Interface.
org.eclipse.jdt.ui.actions: Application programming interfaces for Eclipse Java User Interface specific actions.
org.eclipse.jdt.ui.cleanup: Application programming interfaces for code clean up.
org.eclipse.jdt.ui.dialogs: Application programming interfaces for dialogs.
org.eclipse.jdt.ui.jarpackager: Provides classes and interfaces to generate a JAR file.
org.eclipse.jdt.ui.refactoring: Application programming interfaces for rename refactorings.
org.eclipse.jdt.ui.search: Application programming interfaces for Java search participants..
org.eclipse.jdt.ui.text: Application programming interfaces for interaction with the Eclipse Java User Interface text support.
org.eclipse.jdt.ui.text.folding: Application programming interfaces for interaction with the Eclipse Java Editor folding.
org.eclipse.jdt.ui.text.java: Application programming interfaces for interaction with the Eclipse Java User Interface.
org.eclipse.jdt.ui.text.java.correction: Application programming interfaces for correction proposals.
org.eclipse.jdt.ui.text.java.hover: Application programming interfaces for interaction with the Eclipse Java Editor.
org.eclipse.jdt.ui.wizards: Application programming interfaces for interaction with the Eclipse Java User Interface wizards.

Java development tools APT packages
com.sun.mirror.apt: Classes used to communicate information between annotation processors and an annotation processing tool.
com.sun.mirror.declaration: Interfaces used to model program element declarations.
com.sun.mirror.type: Interfaces used to model types.
com.sun.mirror.util: Utilities to assist in the processing of declarations and types.
org.eclipse.jdt.apt.core.build: This package contains utilities for annotation processing in command-line builds and ant scripts.
org.eclipse.jdt.apt.core.env: This package contains Eclipse extensions to some of the Sun annotation processing APIs.
org.eclipse.jdt.apt.core.util: This package contains miscellaneous APIs related to Java annotation processing.

Java development tools debug and launching packages
org.eclipse.ant.launching: Provides support for Ant launching.
org.eclipse.ant.ui.launching: Provides support for Ant launching.
org.eclipse.jdt.debug.core: Provides an implementation of a debug model based on JPDA (Java Platform Debug Architecture).
org.eclipse.jdt.debug.eval: Provides a set classes and interfaces that support evaluations in the Java debugger.
org.eclipse.jdt.debug.ui: Provides an implementation of a source locator for the Java debug model.
org.eclipse.jdt.debug.ui.actions: Provides reuseable actions for the Java debugger.
org.eclipse.jdt.debug.ui.breakpoints: Provides an editor for breakpoint conditions.
org.eclipse.jdt.debug.ui.launchConfigurations: Provides an implementation launch configuration tabs for local and remote Java applications.
org.eclipse.jdt.launching: Application programming interfaces for interaction with the Eclipse Java launching support.
org.eclipse.jdt.launching.environments: Application programming interfaces and classes for execution environments.
org.eclipse.jdt.launching.sourcelookup: Application programming interfaces and classes for source lookup.
org.eclipse.jdt.launching.sourcelookup.containers: Provides source lookup support for the Java debugger.

Java development tools JUnit packages
org.eclipse.jdt.junit: Application programming interfaces for interaction with the Eclipse Java development tools JUnit support.
org.eclipse.jdt.junit.launcher: Application programming interfaces related to launching JUnit tests.
org.eclipse.jdt.junit.model: Application programming interfaces representing test elements as shown in the JUnit view.
org.eclipse.jdt.junit.wizards: Application programming interfaces to implement wizards to create new JUnit testcases.

Other Packages
org.eclipse.jdt.annotation: This package contains annotations that can trigger special behavior when annotated types are compiled by the Eclipse Compiler for Java.