# 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 auto-build 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
Filtering elements

New Java Project wizard