Um projeto Java possui um construtor Java associado que pode compilar incrementalmente os arquivos fonte Java à medida que eles são alterados. Cada projeto Java mantém informações adicionais sobre a hierarquia de tipo e as referências e declarações de elementos Java. Essas informações são constantemente atualizadas à medida que o usuário altera o código fonte Java; elas não são dependentes do construtor.
Você pode organizar projetos Java de duas maneiras diferentes.
Nessa organização, todos os pacotes Java são criados diretamente dentro do projeto. Essa é a organização recomendada para projetos simples. Os arquivos CLASS gerados são armazenados juntamente com os arquivos fonte JAVA.
Nessa organização, os pacotes não são criados diretamente no projeto, mas em pastas de origem. Você cria pastas de origem como filhas do projeto e cria os pacotes dentro dessas pastas de origem.
Essa é a organização recomendada para projetos mais complexos. Ela permite subdividir os pacotes em grupos.