# Java Build Path page

The options in this page indicate the build path settings for a Java project. You can reach this page through the project properties (Project > Properties > Java Build Path) from the context menu on a created project or the File menu of the workbench.

The build class path is a list of paths visible to the compiler when building the project.

## Source tab

Source folders are the root of packages containing .java files. The compiler will translate the contained files to .class files that will be written to the output folder. The output folder is defined per project except if a source folder specifies an own output folder. Each source folder can define an exclusion filter to specify which resources inside the folder should not be visible to the compiler.
Resources existing in source folders are also copied to the output folder unless the setting in the Compiler preference page (Window > Preferences > Java > Compiler > Building) specifies that the resource is filtered.

Source folder options
Option | Description
--- | ---
Add Folder | Creates a new folder to contain source
Edit | Allows to modify the currently selected source folder or source folder attribute.
Remove | Removes the selected folders from the class path. This does not delete the folders nor their contents.
Allow output folder per source folder | Shows/Hides the 'output folder' attribute of the source folders

Source folder attributes
Attribute | Description
--- | ---
Exclusion filter | Selects which resources are not visible to the compiler
Output folder | Only available when Allow output folder per source folder is checked. Defines a source folder specific output location. If not set the project's default output folder is used.

## Projects tab

In the Required projects on the build path list, you can add project dependencies by selecting other workbench projects to add to the build path for this new project. The Select All and Deselect All buttons can be used to add or remove all other projects to or from the build path.

Adding a required project indirectly adds all its classpath entries marked as 'exported'. Setting a classpath entry as exported is done in the Order and Export tab.

The projects selected here are automatically added to the referenced projects list. The referenced project list is used to determine the build order. A project is always build after all its referenced projects are built.

## Libraries tab

On this page, you can add libraries to the build path. You can add:

- Workbench-managed (internal) JAR files
- File system (external) JAR files
- Folders containing CLASS files
- Predefined libraries like the JRE System Library

JAR files can also be added indirectly as class path variables.

By default, the library list contains an entry representing the Java runtime library. This entry points to the JRE selected as the default JRE. The default JRE is configured in the Installed JREs preferences page (Window > Preferences > Java > Installed JREs)

Libraries tab options
Option | Description
--- | ---
Add JARs | Allows you to navigate the workbench hierarchy and select JAR files to add to the build path.
Add External JARs | Allows you to navigate the file system (outside the workbench) and select JAR files to add to the build path.
Add Variable | Allows you to add classpath variables to the build path. Classpath variables are an indirection to JARs with the benefit of avoiding local file system paths in a classpath. This is needed when projects are shared in a team. Variables can be created and edited in the Classpath Variable preference page (Window > Preferences > Java > Build Path > Classpath Variables)
Add Library | Allows to add a predefined libraries like the JRE System Library. Such libraries can stand for an arbitrary number of entries (visible as children node of the library node)
Add Class Folder | Allows to navigate the workbench hierarchy and select a class folder for the build path. The selection dialog also allows you to create a new folder.
Edit | Allows you to modify the currently selected library entry or entry attribute
Remove | Removes the selected element from the build path. This does not delete the resource.

Libraries have the following attributes (presented as library entry children nodes):

Library entry attributes
Attribute | Description
--- | ---
Javadoc location | Specifies where the library's Javadoc documentation can be found. If specified you can use Shift+F2 on an element of this library to open its documentation.
Source attachment | Specifies where the library's source can be found.

## Order and Export tab

In the Build class path order list, you can click the Up and Down buttons to move the selected path entry up or down in the build path order for this new project.

Checked list entries are marked as exported. Exported entries are visible to projects that require the project. Use the Select All and Deselect All to change the checked state of all entries. Source folders are always exported, and can not be deselected.

## Default output folder

At the bottom of this page, the Default output folder field allows you to enter a path to a folder path where the compilation output for this project will reside. The default output is used for source folders that do not specify an own output folder. Use Browse to select an existing location from the current project.

Build classpath
Classpath variables

Working with build paths
Attaching source to variables
Attaching source to a JAR file

Frequently asked questions on JDT
Classpath Variables preferences
Java Compiler properties