## JDT Core

JDT Core (org.eclipse.jdt.core) is the plug-in that defines the core Java elements and API. You should always list this plug-in as a prerequisite when you are developing Java specific features.

JDT Core packages give you access to the Java model objects and headless Java IDE infrastructure. The JDT Core packages include:

- org.eclipse.jdt.core - defines the classes that describe the Java model.
- org.eclipse.jdt.core.compiler - defines an API for the compiler infrastructure.
- org.eclipse.jdt.core.dom - supports Abstract Syntax Trees (AST) that can be used for examining the structure of a compilation unit down to the statement level.
- org.eclipse.jdt.core.dom.rewrite - supports rewriting of Abstract Syntax Trees (AST) that can be used for manipulating the structure of a compilation unit down to the statement level.
- org.eclipse.jdt.core.eval - supports the evaluation of code snippets in a scrapbook or inside the debugger.
- org.eclipse.jdt.core.formatter - supports the formatting of compilation units, types, statements, expressions, etc.
- org.eclipse.jdt.core.jdom - supports a Java Document Object Model (DOM) that can be used for walking the structure of a Java compilation unit. All types within this package are deprecated.
- org.eclipse.jdt.core.search - supports searching the workspace's Java model for Java elements that match a particular description.
- org.eclipse.jdt.core.util - provides utility classes for manipulating .class files and Java model elements.

`org.eclipse.jdt.core.jdom` is deprecated since version 3.0. The manipulation of the structure of a compilation unit should be done using `org.eclipse.jdt.core.dom` instead.