*Mathematica* projects can be created by the
New Project wizard.
However, any project in the *Workbench* can work with *Mathematica*.
If you do this it may be beneficial to add a *Mathematica* nature to a project,
as demonstrated in the
project resources section.

The New Project wizard can make two different types of projects: basic projects and application projects. The differences are the layout of files and initialization for a launch.

Basic projects are a lightweight type of project
that is just a collection of *Mathematica*
source files. They do not necessarily have any
particular structure. They do not have to be
*Mathematica* packages.

When a launch is carried out in a basic project, all source files in the project are often loaded automatically. You can turn this off, either by setting a file property or by adding an execution build command.

Application projects are more structured projects that
are designed to hold
*Mathematica* applications.
These are the standard way to provide code, notebooks,
stylesheets, and palettes to extend
*Mathematica*. They can be installed so that
*Mathematica* can load and use them.

The recommended layout for an application project is to have a copy of the application inside the project. This is demonstrated below.

You can learn more about this in the section on
*Mathematica*
application projects.

*J/Link* projects are projects that combine both *Mathematica*
and Java code, using the *J/Link* toolkit. The *Workbench*
provides special support to work with this type of project, for
example, providing wizards to create them and supporting debugging of
both the Java and the *Mathematica* code. More information
can be found in the section on
*J/Link* projects.

One of the strengths of the Wolfram *Workbench* is that
it allows you to work with projects of different languages
and flavors. Many types of projects are already supported,
for example, application, *J/Link*, and
web*Mathematica* projects. However, many other types
of projects can also be made simply by mixing the resources
in a common project. For example, projects that use
C/C++ or TeX could be combined with *Mathematica*.
If you do this it may be beneficial to add a *Mathematica* nature to a project,
as demonstrated in the
project resources section.