blob: 3029358645d9233265daf5d48c9661af19045f77 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>Java Build Path page</title>
<link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
<script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js"> </script>
</head>
<body>
<h1>Java Build Path page</h1>
<p>The options in this page indicate the build path settings for a Java project.
You can reach this page through the <a href="ref-121.htm">New Java Project wizard</a>.</p>
<p>The build class path is a list of paths visible to the compiler when building the project.</p>
<h2>Source tab</h2>
<p>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.<br>
Resources existing in source folders are also copied to the output folder unless the setting in the <a href="ref-preferences-compiler.htm">Compiler preference
page</a>
(<a class="command-link" href='javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.jdt.ui.preferences.JavaBuildPreferencePage)")'>
<img src="PLUGINS_ROOT/org.eclipse.help/command_link.png">
<b>Java &gt; Compiler &gt; Building</b></a>) specifies that the resource is filtered.</p>
<p>The tree shows the project as it will look like when switching to the package explorer. Several operations can be executed
on this tree to change the structure of the project.</p>
<table border="1" cellspacing="0" cellpadding= "5" summary="Source folder options" width="700">
<tbody>
<tr>
<th>Icon</th>
<th>Option</th>
<th>Description</th>
</tr>
<tr>
<td align="center" valign="center" width="5%"><img src="../images/org.eclipse.jdt.ui/elcl16/add_to_buildpath.png" alt="Add to build path" border="0" ></td>
<td align="center" valign="center" width="20%">Add to build path</td>
<td align="left" valign="top">Allows to add a folder or package to the Java build path and change it to a source folder. A source folder is a top-level
folder in the project hierarchy that is used as the root of packages. Entries on the build path like source folders are visible to the compiler
and all contained resources like .java files are used to build the project. Source folders allow to structure the project, for example to separate
test from the application in two source folders. Within a source folder, a more detailed structuring can be done by using packages.
</td>
</tr>
<tr>
<td align="center" valign="center" width="05%"><img src="../images/org.eclipse.jdt.ui/elcl16/remove_from_buildpath.png" alt="Remove from buildpath" border="0" ></td>
<td align="center" valign="center" width="20%">Remove from buildpath</td>
<td align="left" valign="top">Allows to remove a source folder from the Java build path and change it into a normal folder. All contained resources
in this folder (like .java files) are no longer visible to the compiler and will not be included when building the project.
</td>
</tr>
<tr>
<td align="center" valign="center" width="05%"><img src="../images/org.eclipse.jdt.ui/elcl16/exclusion_filter_attrib.png" alt="Exclude" border="0" ></td>
<td align="center" valign="center" width="20%">Exclude</td>
<td align="left" valign="top">Allows to add a resource to the exclusion filter of it's parent source folder. The consequence is that
all children of this resource are no longer visible to the compiler. This operation can be useful if for example, some packages
are not needed in the project and can therefore be hidden from the compiler.
</td>
</tr>
<tr>
<td align="center" valign="center" width="05%"><img src="../images/org.eclipse.jdt.ui/elcl16/inclusion_filter_attrib.png" alt="Include" border="0" ></td>
<td align="center" valign="center" width="20%">Include</td>
<td align="left" valign="top">This action is available on files or folders that have been excluded. In this situation, include allows to make this
resources again visible to the compiler.
</td>
</tr>
<tr>
<td align="center" valign="center" width="05%"><img src="../images/org.eclipse.jdt.ui/obj16/text_edit.png" alt="Configure source folder properties" border="0" ></td>
<td align="center" valign="center" width="20%">Configure source folder properties</td>
<td align="left" valign="top">Editing can be used in two situations: <p>
<ol>
<li>Customize the inclusion and exclusion filters by defining string patterns. This can be useful if
including or excluding every single resource would take too long and just some simple patterns can do the job. A very
practical operator is the wildcard operator to define more sophisticated patterns (for example exclude all resources
that start with &quot;Test*.java&quot;).</li>
<li>Change the output folder for a source folder. The consequence is that all generated
.class files from the .java files in this source folder are will be generated in the separate output folder instead of the
project's output folder.</li>
</ol>
Note that this advanced action is only available on single selected objects.
</p></td>
</tr>
<tr>
<td align="center" valign="center" width="05%"><img src="../images/org.eclipse.jdt.ui/elcl16/clear_co.png" alt="Undo all changes" border="0" ></td>
<td align="center" valign="center" width="20%">Undo all changes</td>
<td align="left" valign="top">All changes that have been applied to the project in this wizard will be withdrawn and the original
state of the project is reconstructed.
</td>
</tr>
<tr>
<td align="center" valign="center" width="05%"><img src="../images/org.eclipse.jdt.ui/etool16/newpackfolder_wiz.png" alt="Link additional source to project" border="0" ></td>
<td align="center" valign="center" width="20%">Link additional source to project</td>
<td align="left" valign="top">When creating a project, there are might already exist some pieces of code or other resources somewhere in the
file system that could also be used for this new project. To add this sources to the project, it is possible to create a linked source
folder to the folder in the file system and make its content visible to the compiler. Note that only a link to the folder is created. This means that
any modifications on resources in that folder will also have an impact on other projects also using this resources.
</td>
</tr>
<tr>
<td align="center" valign="center" width="05%">No icon</td>
<td align="center" valign="center" width="20%">Allow output folders for source folders</td>
<td align="left" valign="top">Shows/Hides the 'output folder' attribute of the source folders. If no output folders are shown, this
means that the project's default output folder is used for the generated .class files.</td>
</tr>
</tbody>
</table>
<p>Note that a shorter description of all operations is visible in the area at the bottom of the project tree (labeled with 'Description'). Only the descriptions
which are valid for the current selection on the project are shown. For experienced users it is also possible to close the description area to view
the projects structure enlarged.</p>
<h2>Projects tab</h2>
<p>In the <b>Required projects on the build path</b> list, you can add project dependencies by selecting other workbench
projects to add to the build path for this new project. The <b>Select All</b> and <b>Deselect All</b> buttons can be used to add or remove all other projects to or from the build path.</p>
<p>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.</p>
<p>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.</p>
<h2>Libraries tab</h2>
<p>On this page, you can add libraries to the build path. You can add:</p>
<ul>
<li>Workbench-managed (internal) JAR files</li>
<li>File system (external) JAR files</li>
<li>Folders containing CLASS files</li>
<li>Predefined libraries like the JRE System Library</li>
</ul>
<p>JAR files can also be added indirectly as class path variables.</p>
<p>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 <a href="ref-18.htm">Installed JREs preferences page</a> (Window &gt; Preferences &gt; Java &gt; Installed
JREs)</p>
<table border="1" cellspacing="0" cellpadding="5" summary="libraries tab options" width="700">
<caption>
Libraries tab options<br>
</caption>
<tbody>
<tr>
<th width="20%">Option</th>
<th>Description</th>
</tr>
<tr>
<td align="left" valign="top">Add JARs</td>
<td align="left" valign="top">Allows you to navigate the workbench hierarchy and select JAR files to add to the build path.</td>
</tr>
<tr>
<td align="left" valign="top">Add External JARs</td>
<td align="left" valign="top">Allows you to navigate the file system (outside the workbench) and select JAR files to add to the build path.</td>
</tr>
<tr>
<td align="left" valign="top">Add Variable</td>
<td align="left" valign="top">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.<br>
Variables can be created and edited in the <a href="ref-15.htm">Classpath Variable preference page</a>
(<a class="command-link" href='javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.jdt.ui.preferences.ClasspathVariablesPreferencePage)")'>
<img src="PLUGINS_ROOT/org.eclipse.help/command_link.png">
<b>Java &gt; Build Path &gt; Classpath Variables</b></a>)</td>
</tr>
<tr>
<td>Add Library</td>
<td>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)</td>
</tr>
<tr>
<td>Add Class Folder</td>
<td>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.</td>
</tr>
<tr>
<td align="left" valign="top">Edit</td>
<td align="left" valign="top">Allows you to modify the currently selected library entry or entry attribute</td>
</tr>
<tr>
<td align="left" valign="top">Remove</td>
<td align="left" valign="top">Removes the selected element from the build path. This does not delete the resource.</td>
</tr>
</tbody>
</table>
<p>&nbsp;Libraries have the following attributes (presented as library entry children nodes):</p>
<table border="1" cellspacing="0" cellpadding="5" summary="Source folder options"
width="750">
<caption>Library entry attributes<br>
</caption>
<tbody>
<tr>
<th>Attribute</th>
<th>Description</th>
</tr>
<tr>
<td align="left" valign="top" width="20%">Javadoc location</td>
<td align="left" valign="top">Specifies where the library's Javadoc documentation can be found. If specified you can use <b>Shift+F2</b> on an element of this library to open its documentation.</td>
</tr>
<tr>
<td align="left" valign="top">Source attachment</td>
<td align="left" valign="top">Specifies where the library's source can be found.</td>
</tr>
</tbody>
</table>
<h2>Order and Export tab</h2>
<p>In the <b>Build class path order</b> list, you can click the <b>Up</b> and <b>Down</b> buttons to move the selected path entry up or down in the build path order for this new project.</p>
<p>Checked list entries are marked as exported. Exported entries are visible to projects that require the project. Use the <b>Select
All</b> and <b>Deselect All</b> to change the checked state of all entries. Source folders are always exported,
and can not be deselected.</p>
<h2>Default output folder</h2>
<p>At the bottom of this page, the <b>Default output folder</b> 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 <b>Browse</b> to select an existing location from the current project.</p>
<p><img src="../images/ngrelc.png" alt="Related concepts" border="0" ></p>
<p>
<a href="../concepts/cbuildcp.htm">Build classpath</a><br>
<a href="../concepts/cclsspthv.htm">Classpath variables</a><br>
</p>
<p><img src="../images/ngrelt.png" alt="Related tasks" border="0" ></p>
<a href="../tasks/tasks-110.htm">Working with build paths</a><br>
<a href="../tasks/tasks-116.htm">Attaching source to variables</a><br>
<a href="../tasks/tasks-115.htm">Attaching source to a JAR file</a>
<p>
<img src="../images/ngrelr.png" alt="Related reference" border="0" >
</p>
<p>
<a href="../reference/ref-152.htm">Frequently asked questions on JDT</a><br>
<a href="../reference/ref-15.htm">Classpath Variables preferences</a><br>
<a href="../reference/ref-properties-compiler.htm">Java Compiler properties</a>
</p>
</body>
</html>