ECLIPSE IDE Tutorial - Looking at the ECLIPSE IDE Directory Structure
The Files and Sub-directories Downloaded
Technically, we should really call the process of obtaining an Eclipse IDE release as a download/comprehension process rather than an install because what the user obtains from the website, www.eclipse.org/downloads is a standard .zip file which can be decompressed by using any "vanilla" decompression utility such as WinZip.
There are a number of files and sub-directories in the zipped package and we'll step through them in the following sections.
The ECLIPSE Files for KEPLER ( Version 4.3.1)
The HTML Files
Nothing very exciting here: th epl-v10.html file is the public license and the notice.html file is the software agreement.
The Configuration File - eclipse.ini
eclipse.ini, the configuration file contains some critical information regarding the startup of ECLIPSE (.e.g. ---startup and --launcher.library lines) and some truly configurable information (e.g. the requiredJavaVersion). Below illustrated are startup failures caused by not having the -----startup jar or launcher library file available.
Configuration file error examples
The readme sub-directory
This sub-directory contains the release notes, readme,_eclipse.html, which has information about Eclipse configurations, known problems, and workarounds..
The ECLIPSE executable files
There are two files eclipse.exe and eclipsec.exe which are the ECLIPSE executables. One would generally start ECLIPSE on windows by invoking eclipse.exe. The smaller eclipsec.exe is a console version which accepts command line arguments. A simple example would be: eclipsec.exe -nosplash which initiates ECLIPSE without the fancy logo.
The Plug-Ins Folder
Just looking at the plug-ins folder can be a bit overwhelming. My installed base shows over 800+ entries, folders and jar files.
Briefly, plug-ins can be thought of as "add-on" to a base product, in this case Eclipse. The add on extends the capabilities of the product. Plug-ins extend the functionality of the product. As Eclipse was written in the JAVA programming language it followed naturally that any enhancements (plug-ins) would probably be written in JAVA as well. Most of the entries in the plug-in sub-directory are .jar (Java ARchive) files, basically compressed (.zip) files which contain sub-folders and files which make up the plug-in. A plug-in is the smallest installable and deployable software component in an ECLIPSE installation.
For the beginner, it would be overkill to dwell on other than know that a plug-in may used when you use a feature which triggers the plug-in code. Plug-ins provide additional capabilities and customization to the ECLIPSE product.
The p2 folder
The p2 folder is associated with a subproject within the ECLIPSE development effort. The p2 effort can best be described as a " provisioning platform", that is an enabling platform, for OSGi (Open Service Gateway Initiative), a set of standards for component implementation, documentation, and deployment. The emphasis of p2 in the context of ECLIPSE in part was better installation and software updating from a user perspective. For an ECLIPSE user it is most evident how software updates are handled.
The dropin folder
The drop-in folder is identical to the plug-in folder in terms of functionality.. A drop-in like a plug-in is an extension to the ECLIPSE product. Developers use the drop-in folder for extension to ECLIPSE which are being tested for example. In simple terms, a drop-in has less formal support, such a supported site for its inclusion in the product.
The feature folder
A feature in ECLIPSE can be thought of as a logically connected set of plug-ins which have no external dependencies. For example, mylyn, the ECLIPSE task management subsystem, is implemented by a set of features: task features, team related features and notifications.
The artifacts.xml file
The Eclipse 'p2' install system uses this file as repository of installable artifacts. The file is sometimes compressed in to an jar file, artifacts.jar.
The .eclipseproduct file
A file which contains the product name, id, and version.