# Java projects

A Java project contains source code and related files for building a Java program. It has an associated Java builder that can incrementally compile Java source files as they are changed.

A Java project also maintains a model of its contents. This model includes information about the type hierarchy, references and declarations of Java elements. This information is constantly updated as the user changes the Java source code. The updating of the internal Java project model is independent of the Java builder; in particular, when performing code modifications, if autobuild is turned off, the model will still reflect the present project contents.

You can organize Java projects in two different ways:

- Using the project as the source container. This is the recommended organization for simple projects.
- Using source folders inside the project as the source container. This is the recommended organization for more complex projects. It allows you to subdivide packages into groups.

Java builder
Refactoring support

Creating a new Java project
Creating a Java project as its own source container
Creating a Java project with source folders
Creating a new source folder
Creating Java elements
Copying and moving Java elements
Generating getters and setters
Filtering elements

New Java Project wizard
New Project preferences