<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- /*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/ -->
<link rel="stylesheet" type="text/css" href="../../org.eclipse.wst.doc.user/common.css" />

<title>Creating an application client project</title>
</head>
<body id="tjappproj"><a name="tjappproj"><!-- --></a>
<h1 class="topictitle1">Creating an application client project</h1>
<div><div>You can use a wizard to create a new application client project
and add it to a new or existing enterprise application project.</div><div class="section"> <p>Application client projects contain the resources needed for
application client modules. Application client projects contain programs that
run on networked client systems. An application client project is deployed
as a JAR file.</p>
<p>Like the other types of projects, application client
projects can contain one or more project facets, which represent units of
functionality in the project. A new application client project should have
the Application Client module facet. Depending on what you want to use the
project for, you may want to enable other facets for the project.</p>
<p>To
create a J2EE application client project:</p>
</div>
<ol><li class="stepexpand"><span>In the J2EE perspective, click <span class="menucascade"><span class="uicontrol">File</span> &gt; <span class="uicontrol">New</span> &gt; <span class="uicontrol">Application Client Project</span></span>.</span></li>
<li class="stepexpand"><span>In the <span class="uicontrol">Name</span> field, type a name for the application
client project. </span></li>
<li class="stepexpand"><span>To change the default project location, clear the <span class="uicontrol">Use
default</span> check box under <span class="uicontrol">Project contents</span> and
select a new location with the <span class="uicontrol">Browse</span> button.</span> If you specify a non-default project location that is already being
used by another project, the project creation will fail.<div class="note"><span class="notetitle">Note:</span> If you type
a new EAR project name, the EAR project will be created in the default location
with the lowest compatible J2EE version based on the version of the project
being created. If you want to specify a different version or a different location
for the enterprise application, you must use the New Enterprise Application
Project wizard.</div>
</li>
<li class="stepexpand"><span>In the <span class="uicontrol">Target runtime</span> field, select the
target runtime for the project.</span></li>
<li class="stepexpand"><span>If you want to add the new project to an enterprise application
project, select the <span class="uicontrol">Add project to an EAR</span> check box
and select a project in the <span class="uicontrol">EAR Project Name</span> list.</span></li>
<li class="stepexpand"><span>Click <span class="uicontrol">Next</span>.</span></li>
<li class="stepexpand"><span>Select the check boxes next to the facets you want this project
to have and select a version number for each facet. </span> You can also
choose a preset combination of facets from the <span class="uicontrol">Presets</span> list,
and you can find out more about the requirements for each facet by right-clicking
the facet name and then clicking <span class="uicontrol">Show Constraints</span>.</li>
<li class="stepexpand"><span>If you want to limit your project so it will be compatible with
one or more runtimes, click the <span class="uicontrol">Show Runtimes</span> button
and select the runtimes that you want the project to be compatible with.</span></li>
<li class="stepexpand"><span>Click <span class="uicontrol">Next</span>.</span></li>
<li class="stepexpand"><span>In the <span class="uicontrol">Source Folder</span> field, enter the name
of the folder to use for source code. </span></li>
<li class="stepexpand"><span>If you want to create a default class for the module, select the <span class="uicontrol">Create
a default Main class</span> check box.</span> </li>
<li class="stepexpand"><span>Click <span class="uicontrol">Finish</span>.</span></li>
</ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="../topics/ph-projects.html" title="The workbench can work with many different types of projects. The following topics cover creating and managing some of the types of projects related to J2EE development.">Working with projects</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="../topics/cjarch.html" title="The Java 2 Platform, Enterprise Edition (J2EE) provides a standard for developing multitier, enterprise services.">J2EE architecture</a></div>
<div><a href="../topics/cjappcliproj.html">Application client projects</a></div>
</div>
<div class="reltasks"><strong>Related tasks</strong><br />
<div><a href="../topics/tjexpapp.html" title="You can export an application client project as a JAR file.">Exporting an application client project</a></div>
<div><a href="../topics/tjimpapp.html" title="Application client projects are deployed as JAR files. You can import an application client project that has been deployed into a JAR file by using the Import wizard.">Importing an application client JAR file</a></div>
<div><a href="../topics/taddingfacet.html" title="This topic explains how to add a facet to an existing project in your workspace.">Adding a facet to a J2EE project</a></div>
</div>
</div>
</body>
</html>