<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="en">
  <head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2009. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
    <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" type="text/css">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Content-Style-Type" content="text/css">

    <title>New Java Project Wizard</title>
    <script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js" type="text/javascript"> </script>
  </head>

  <body>
    <h1>New Java Project Wizard</h1>

    <p>The
    <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.newWizard(newWizardId=org.eclipse.jdt.ui.wizards.JavaProjectWizard)")'>
    <img src="PLUGINS_ROOT/org.eclipse.help/command_link.png" alt="Opens the New Java Project wizard">
    <b>New Java Project</b></a> wizard
    helps you create a new Java project in the workbench.</p>

    <h2>Project name page</h2>

    <table border="1" cellspacing="0" cellpadding="5" summary="Project name page">
      <tr>
        <th>Option</th>

        <th>Description</th>

        <th>Default</th>
      </tr>

      <tr>
        <td align="left" valign="top">Project name</td>

        <td align="left" valign="top">Type a name for the new project.</td>

        <td align="left" valign="top">&lt;blank&gt;</td>
      </tr>

         <tr>
          <td valign="top">
            Location
          </td>
          <td valign="top">
            When <strong>'Use default location'</strong> is selected, the New Project Wizard will create a new project with the specified name in the workspace. 
            <br><br>Otherwise, you can specify the location from which the New Java Project Wizard will retrieve an existing Java project. In this case the wizard will analyze the existing project and set up the build path automatically. 
			Click on <strong>Browse...</strong> to browse for a location of an existing Java project.                 
          </td>
          <td valign="top">
             workspace
          </td>
        </tr>
      
         <tr>
          <td valign="top">
            JRE
          </td>
          <td valign="top">
            <dl>
              <dt>
                <strong>Use default JRE:</strong>
              </dt>
              <dd>
                When selected, the New Java Project Wizard creates a new Java project which uses the workspace default JRE.
                The default JRE can be configured on the <a href="./preferences/java/debug/ref-installed_jres.htm">Java &gt; Installed JREs</a> preference page.<br>
                The project will also use the default compiler compliance which can be configured on the <a href="preferences/java/ref-preferences-compiler.htm">Java &gt; Compiler</a> preference page.<br>
                Click on <b>Configure default...</b> to configure the default JRE and compiler compliance.
              </dd>
              <dt>
                <strong>Use project specific JRE:</strong>
              </dt>
              <dd>
                 When selected, you can explicitly specify the JRE to be used for the new Java project. The new project will use a compiler compliance
                 which matches the version of the selected JRE.
              </dd>
              <dt>
                <strong>Use an execution environment JRE:</strong>
              </dt>
              <dd>
                 When selected, you can specify an execution environment to be used for the new Java project. The new project will use a compiler compliance
                 which fits best the selected execution environment.<br>
                 Execution environments can be configured on the <a href="preferences/java/debug/ref-execution_environments.htm">Java &gt; Installed JREs &gt; Execution Environments</a> preference page.
              </dd>
            </dl>
          </td>
          <td valign="top">
            Use default JRE
          </td>
        </tr>
      
         <tr>
          <td valign="top">
            Project layout
          </td>
          <td valign="top">
            <dl>
              <dt>
                <strong>Use project folder as root for sources and class files:</strong>
              </dt>
              <dd>
                When selected, the project folder is used both as source folder and as output folder for class files.
              </dd>
              <dt>
                <strong>Create separate folders for sources and class files:</strong>
              </dt>
              <dd>
                When selected, the New Java Project Wizard creates a source folder for Java source files and an output folder which holds the class files of the project.
              </dd>
            </dl>
          </td>
          <td valign="top">
            Create separate folders for sources and class files
          </td>
        </tr>
        
        <tr>
          <td valign="top">
            Working sets
          </td>
          <td valign="top">
            <dl>
              <dt>
                <strong>Add project to working sets:</strong>
              </dt>
              <dd>
                When selected, the new project will be added to the working sets shown in <strong>Working Sets</strong> drop down field. The drop down field
                shows a list of previous selected working sets.<br>
                Click on <strong>Select...</strong> to select working sets to which to add the new project.
              </dd>
            </dl>
          </td>
          <td valign="top">
            Depends on the context from which the wizard has been started
          </td>
        </tr>
      
    </table>

    <h2>Java Build Path page</h2>

    <p>You can skip this page by pressing <span class="control">Finish</span> on the first page. Otherwise press <span class="control">Next</span> to configure the Java build path.
    </p>    
    The Java build path consist of source, library and project entries. The user interface is the same as for the <a href="../reference/ref-properties-build-path.htm">Build Path</a> property page, except for
    the source tab:

    <h2>Source tab</h2>

    <p>Source folders are top-level folders in the project hierarchy. They 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.</p>
<p>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 achieved by using packages.</p> 
<p>Each source folder can define an exclusion filter to specify which 
resources inside the folder should not be visible to the compiler.</p>
<p>Resources existing in source folders are copied to the output folder unless the setting in the <a href="preferences/java/compiler/ref-preferences-building.htm">Java &gt; Compiler &gt; Building</a> preference
    page specifies that the resource is filtered. The output folder is defined per project except if a source folder specifies its own output folder.</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="600">

	<tbody>
		<tr>
			<th>Icon</th>

			<th>Option</th>

			<th>Description</th>
		</tr>

		<tr>
			<td align="center" valign="middle" width="5%"><img src="../images/org.eclipse.jdt.ui/etool16/newpackfolder_wiz.gif" alt="Add to build path" border="0" ></td>

			<td align="center" valign="middle" width="20%">Add source folder</td>

			<td align="left" valign="top">Add a folder to the Java build path as source folder.</td>
		</tr>
		
		<tr>
			<td align="center" valign="middle" width="05%"><img src="../images/org.eclipse.jdt.ui/elcl16/add_linked_source_to_buildpath.gif" alt="Link additional source to project" border="0" ></td>

			<td align="center" valign="middle" width="20%">Link additional source to project</td>

			<td align="left" valign="top">Add a link to a folder in the file system as source folder to the Java build path.
			</td>
		</tr>
		
		<tr>
			<td align="center" valign="middle" width="05%"><img src="../images/org.eclipse.jdt.ui/elcl16/remove_as_source_folder.gif" alt="Remove from buildpath" border="0" ></td>

			<td align="center" valign="middle" width="20%">Remove from buildpath</td>

			<td align="left" valign="top">Remove a source folder from the Java build path and change it into a normal folder.</td>
		</tr>

		<tr>
			<td align="center" valign="middle" width="05%"><img src="../images/org.eclipse.jdt.ui/elcl16/exclusion_filter_attrib.png" alt="Exclude" border="0" ></td>

			<td align="center" valign="middle" width="20%">Exclude</td>

			<td align="left" valign="top">Add a resource to the exclusion filter of it's parent source folder. 
			The excluded resource and all its children are no longer visible to the compiler.
			</td>
		</tr>

		<tr>
			<td align="center" valign="middle" width="05%"><img src="../images/org.eclipse.jdt.ui/elcl16/inclusion_filter_attrib.png" alt="Include" border="0" ></td>

			<td align="center" valign="middle" width="20%">Include</td>

			<td align="left" valign="top">Includes a previously excluded resource.</td>

		</tr>

		<tr>
			<td align="center" valign="middle" width="05%"><img src="../images/org.eclipse.jdt.ui/elcl16/configure_buildpath_filters.png" alt="Configure source folder properties" border="0" ></td>

			<td align="center" valign="middle" width="20%">Configure source folder properties</td>

			<td align="left" valign="top"><p>The edit source folder property menu has two actions</p>
				<ol>
				<li><strong>Configure Inclusion / Exclusions Filters</strong>: Customize the inclusion and exclusion filters by defining string patterns.
				It is possible to use wildcard in patters (i.e. to exclude all java files which 
				start with &quot;Test&quot; write &quot;Test*.java&quot;).</li>
				<li><strong>Configure Output Folder</strong>: Change the output folder for a source folder. This action is only enabled if
				<strong>Allow output folders for source folders</strong> is enabled.</li>
				</ol></td>
		</tr>

		<tr>
			<td align="center" valign="middle" width="05%"><img src="../images/org.eclipse.jdt.ui/elcl16/clear_co.png" alt="Undo all changes" border="0" ></td>

			<td align="center" valign="middle" 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="middle" width="05%">&nbsp;</td>

			<td align="center" valign="middle" width="20%">Allow output folders for source folders</td>

			<td align="left" valign="top">If enabled, each source folder can have its own output folder. Otherwise all source folders will use the
			default output folder.</td>
		</tr>
	</tbody>
</table>

<p>A shorter description of all operations is visible in the <strong>Details</strong> pane below the project tree.</p>
    
    <h2>Library tab, Project tab and Order Tab</h2>
    See <a href="../reference/ref-properties-build-path.htm">Build Path</a> property page for more details.

    <p><img src="../images/ngrelc.png" alt="Related concepts" border="0" ></p>
    <p>
     <a href="../concepts/concept-java-project.htm">Java projects</a><br>
    </p>
    <p>
      <img src="../images/ngrelr.png" alt="Related reference" border="0" >
    </p>
     <p>
     <a href="../reference/ref-menu-file.htm">File actions</a>
    </p>
  </body>
</html>

