<!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, 2012. 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>New Java Package Wizard</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" type="text/javascript"> </script>
  </head>

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

    <p>The
    <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.newWizard(newWizardId=org.eclipse.jdt.ui.wizards.NewPackageCreationWizard)")'>
    <img src="PLUGINS_ROOT/org.eclipse.help/command_link.svg" alt="Opens the New Java Package wizard">
    <b>New Java Package</b></a> wizard
    helps you create a folder corresponding to a new Java package and optionally a package level documentation file. It can also be used to add package level documentation to an existing package.</p>
    
    <p>The corresponding folder of the default package always exists, and therefore doesn't have to be
    created.</p>

    <table border="1" cellspacing="0" cellpadding="5" summary="Java Package Options">
      <caption>
        Java Package Options<br>
      </caption>

      <tr>
        <th>Option</th>

        <th>Description</th>

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

      <tr>
        <td align="left" valign="top">Source folder</td>

        <td align="left" valign="top">Type or browse to select a container (project or folder) for the new package.</td>

        <td align="left" valign="top">The source folder of the element that was selected when the wizard has been started.</td>
      </tr>

      <tr>
        <td align="left" valign="top">Name</td>

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

        <td align="left" valign="top">The project name, if it is a valid package name and if the source folder does not contain any other package, otherwise &lt;blank&gt;</td>
      </tr>

      <tr>
        <td align="left" valign="top">Create package-info.java</td>

        <td align="left" valign="top">
        	<p>Whether a <code>package-info.java</code> file should be created in the package.</p>
        	
        	<p>The <code>package-info.java</code> file contains package level documentation as well as annotations. For example:</p> 
        		
<pre><code>
/**
 * This package contains JAXB classes.
 */
@XmlSchema(namespace = "http://www.example.com", elementFormDefault = XmlNsForm.QUALIFIED)
package com.acme.jaxb;
</code></pre>
        		
        	<p>For more information, refer to the <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-7.html#jls-7.4.1">Java Language Specification Section 7.4.1. Named Packages</a>.</p>
        
        	<p>If the source level is 1.4 or below, a <code>package.html</code> will be created instead.</p>
        </td>

        <td align="left" valign="top">false</td>
      </tr>
          <tr>
        <td align="left" valign="top">Generate comments(configure templates and default value 
          <a class="command-link" href='javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.jdt.ui.preferences.CodeTemplatePreferencePage)")'>
    	<b>here</b></a>)
        </td>
        <td align="left" valign="top">Generates comments for <code>package-info.java</code> </td>
        <td align="left" valign="top">false</td>
      </tr>
    </table>

    <h3 class="related">Related references</h3>
      <a href="../reference/ref-menu-file.htm">File actions</a>
  </body>
</html>

