<!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." >
    <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"> </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">
            Contents
          </td>
          <td valign="top">
            <dl>
              <dt>
                <strong>Create new project in workspace:</strong>
              </dt>
              <dd>
                When selected, the New Project Wizard will create a new project with the specified name in the workspace.
              </dd>
              <dt>
                <strong>Create project from existing source:</strong>
              </dt>
              <dd>
                 When selected, you can specify the location from which the New Java Project Wizard will retrieve
                 an existing Java project.<br>Click on <strong>Browse...</strong> to browse for a location of an existing Java project.
              </dd>
            </dl>
          </td>
          <td valign="top">
             workspace
          </td>
        </tr>
      
         <tr>
          <td valign="top">
            JDK Compliance
          </td>
          <td valign="top">
            <dl>
              <dt>
                <strong>Use default compiler compliance:</strong>
              </dt>
              <dd>
                When selected, the New Java Project Wizard creates a new Java project with the default compiler 
                compliance. The default compiler compliance can be configured on the <a href="ref-preferences-compiler.htm">Compiler</a> preference page.
              </dd>
              <dt>
                <strong>Use project specific compliance:</strong>
              </dt>
              <dd>
                 When selected, you can explicitly specify the compiler compliance of the new Java project.
              </dd>
            </dl>
          </td>
          <td valign="top">
            default compliance
          </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 source and output folders:</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">
            Use project folder
          </td>
        </tr>
      
    </table>

    <h2>Java settings 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 <a href="ref-123b.htm">Java Build
    Path</a>.<br>
     If the project location on the first page has been set to an existing directory, you will be prompted if the New Java Project wizard should try to detect existing classpath
    settings. To do this the project will be created early on the invocation of the <span class="control">Next</span> button, and the <span class="control">Back</span> will be
    disabled on the Java Settings page.</p>

    <p><img src="../images/ngrelc.png" alt="Related concepts" border="0" ></p>
    <p>
     <a href="../concepts/concepts-3.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>

