What is the PROJECT file format?
A .project file is an XML descriptor that Eclipse IDE places in the root directory of every workspace project. It is the primary metadata file that identifies a folder as an Eclipse project and is read each time Eclipse opens the workspace. The file is auto-generated by the IDE but is normally committed to version control so that other developers can import the project without manual reconfiguration.
The XML root element is <projectDescription>, containing child elements for the project <name>, an optional <comment>, a <projects> list of referenced project dependencies, a <buildSpec> section listing registered builders (such as org.eclipse.jdt.core.javabuilder for Java incremental compilation), and a <natures> section identifying the project type (for example, org.eclipse.jdt.core.javanature for Java projects or org.eclipse.pde.PluginNature for Eclipse plug-in projects).
Eclipse reads and writes this file via the IProjectDescription interface in the org.eclipse.core.resources bundle. The format has been stable since Eclipse 3.x (2004). All Eclipse-based IDEs - including Spring Tool Suite, Zend Studio, and older MyEclipse - share the same .project format. Tools such as IntelliJ IDEA and VS Code (with Eclipse-compatibility extensions) can import .project files when migrating projects. Deleting the file causes Eclipse to lose all project metadata for that directory.
Security & safety
RISK: LOWPlain XML config file generated by the IDE; no executable code. A maliciously crafted .project could reference linked resources pointing to arbitrary filesystem paths (path traversal in Eclipse workspace), but this requires the victim to import it into Eclipse and execute a build.
Format details
in a nutshell- IntelliJ IDEA Eclipse import - IntelliJ reads .project to import Eclipse projects, but uses its own .iml format natively.
- Spring Tool Suite (STS) - Eclipse-based IDE that creates and reads .project files identically to upstream Eclipse.
Programs that open PROJECT files
Technical details
deep spec| File format | XML (UTF-8 encoded plain text) |
| Root element | <projectDescription> |
| File location | Always in the root directory of the Eclipse project |
| Key child elements | <name>, <comment>, <projects>, <buildSpec>, <natures> |
| Builder registration | <buildSpec> lists incremental build commands (e.g., org.eclipse.jdt.core.javabuilder for Java) |
| Nature identifiers | <natures> defines project type (e.g., org.eclipse.jdt.core.javanature for Java, org.eclipse.pde.PluginNature for plugins) |
| API mapping | Read/written via IProjectDescription interface in org.eclipse.core.resources bundle |
| Typical size | 1-10 KB |
| Encoding | UTF-8 |
| Version control | Normally committed to VCS; enables project import without manual IDE reconfiguration |
| Format stability | Stable since Eclipse 3.x (2004); unchanged across current Eclipse releases |
| Cross-IDE compatibility | Used by Spring Tool Suite, Zend Studio; importable by IntelliJ IDEA and VS Code with Eclipse plugins |
| Loss on deletion | Deleting the file causes Eclipse to lose all project metadata for that directory |
| Released | 2001 (Eclipse 1.0) |
| Latest version | No formal versioned spec; format stable since Eclipse 3.x (2004) |
| Open standard | Yes · royalty-free |
| Specification | help.eclipse.org |
PROJECT conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about PROJECT files.