Eclipse is the leading Integrated Development Environment (IDE) for Java, with a rich ecosystem of plug-ins and an open source framework that supports other languages and projects. You'll find this reference card useful for getting started with Eclipse and exploring the breadth of its features.
We rundown the Eclipse distributions and configuration options, then guide you through Views, Editors, and Perspectives in Workbench 101. We list the top shortcuts and toolbar actions for everyday development. And, we provide a guide to the best places for finding plug-ins and getting involved with the Eclipse community.
We focus on the Windows and Mac OS X versions, but Eclipse runs on any modern operating system. Each Eclipse release is tested and validated on different versions of Windows, Linux, OS X, Solaris, and AIX.
Upgrade to Vista? Eclipse 3.3 runs great on 32-bit versions of Microsoft�s latest operating system and uses native WPF components. Eclipse 3.4 adds support for 64-bit Windows XP and Vista.
Mac user? Eclipse for OS X is a Universal Binary, so it natively supports both Intel and PowerPC Macs.
Eclipse is the most well known of several dozen open source projects hosted at eclipse.org (http://www.eclipse.org). Since 2001, the Eclipse SDK has been downloaded over 50 million times.
Most people think of Eclipse as a Java IDE but it's also one of the most popular tools for developing programs in Python, PHP, Ruby, C/C++, and other languages. You can even use it for non-programming tasks such as document creation and order entry. It achieves this flexibility through its modular plug-in architecture (more on that later).
Never install a new version of Eclipse on top of an older version. Rename the old one first to move it out of the way, and let the new version be unpacked in a clean directory.
Go to the eclipse.org download site http://download.eclipse.org/eclipse/downloads and choose the package that's right for you:
|Eclipse IDE for Java Developers||Java IDE with incremental compilation, cross-referencing, code-assist, and Mylyn task management.|
|Eclipse IDE for Java EE Developers||Adds JEE validation, app server support, graphical HTML/JSP/JSF editing, and database tools.|
|Eclipse IDE for C/C++ Developers||C/C++ IDE with syntax highlighting and code completion, launcher, debugger, and makefile generator.|
|Eclipse for RCP/Plug-In Developers||Java IDE plus the Plug-In Development Environment for creating Eclipse plug-ins and applications.|
|Eclipse Classic||The original Java IDE and Rich Client Platform.|
At any given time up to five different build types are available. To see these, select All versions from the download page or visit http://download.eclipse.org/eclipse/downloads
|Stable/Milestone Builds||6 Weeks||Good||Users interested in the latest features|
|Integration Builds||1 Week||Fair||Contributors to Eclipse|
|Nightly Builds||1 Day||Poor||Contributors to Eclipse|
Messed Up Workspace?
If your Eclipse installation has startup errors or a corrupted configuration, it might be time to get a fresh start. Start Eclipse with the -clean option, and all cached framework and runtime data will be cleared out. This often helps fix plug-in issues and improve general stability.
There are many third-party distributions of Eclipse available. Some are free and just repackage the open source Eclipse code. Others are commercial, building on top of Eclipse by adding unique features and support. The most popular ones are listed here.
|Yoxos on demand: Ajax based interface lets you pick and choose exactly what functionality you need.||http://yoxos.com/ondemand||Free|
|Easy Eclipse: Prepackaged releases of Eclipse targeted for specific types of developers.||http://www.easyeclipse.org||Free|
|PHPeclipse: An IDE for PHP development built on Eclipse.||http://www.phpeclipse.net||Free|
|PyDEV: An Eclipse-based environment for developing in Python and Jython.||http://pydev.sourceforge.net||Free|
|MyEclipseIDE: Inexpensive end-to-end Java and J2EE development environment.||http://www.myeclipseide.com||$|
|BEA Workshop: End-to-end browser-to-database solution built on Eclipse.||http://workshopstudio.bea.com||$$$|
|IBM RAD: Helps developers to quickly create Web, SOA, Java, J2EE and portal applications.||http://www-306.ibm.com/software/awdtools/developer/application||$$$$$|
Up the Memory
The default memory size of Eclipse is set in the eclipse.ini file. If you get Out of Memory errors or sluggish response, you may have to increase the defaults. In particular, if you get an error about "PermGen" memory (permanent generation), add this line at the end and restart Eclipse: -XX:MaxPermSize=256m
Use the lowest memory settings that work and perform well for your mix of projects.
On Windows and Linux, eclipse.ini resides in the Eclipse installation directory. On Mac OS X, it's located inside the application bundle: Eclipse.app/Contents/MacOS/eclipse.ini
Eclipse's main window is called the Workbench window. Its menus and toolbars should be familiar with users of any desktop applications, but some other elements like views, editors, and perspectives may not be.
A view is a window that lets you examine something, such as a list of files in your projects. Eclipse comes with dozens of different views. Some open automatically when you use certain perspectives, but you can use the Window > Show View menu to open them at any time. Here's a partial list of views included in the Eclipse SDK:
|Breakpoints||Shows a list of all the breakpoints you have set in your projects|
|Console||Displays the output of your program.|
|Debug||Lists all programs that were launched by Eclipse. Use it to pause program execution, view tracebacks, and locate the cause of deadlocks.|
|Declaration||Shows the source code where the selected object is declared.|
|Display||Shows expression results in an unstructured format.|
|Error Log||View internal errors and stack dumps when reporting Eclipse problems.|
|Expressions||Shows a list of expressions and their values in the debugger.|
|Hierarchy||Displays the class and interface relationships for the selected object.|
|History||Shows the CVS change history of the file.|
|Javadoc||Shows the description (from comments) of the selected object.|
|JUnit||Shows the progress and results of JUnit tests.|
|Navigator||Shows all projects in the workspace as they exist on disk.|
|O utline||Displays the structure of the currently open file.|
|Package Explorer||Shows all your projects, Java packages, and files.|
|Problems||Shows compiler errors and warnings in your code.|
|Search||Shows the results of any search operation.|
|Tasks||Lists all the markers placed in your source code.|
|Variables||Shows all the parameters and local variables in scope while debugging.|
Multiple views can be stacked together in the same rectangular area. The title bar will show a tab for each view, but only one of them can be active at a time. If the window is too narrow to show all the tabs, a special menu will appear to give you access to the hidden ones.
Editors are very similar to views, but they are constrained to a single rectangular area in the Workbench window. Editors may be text-based (like the Java editor) or graphical (such as a diagram editor). You can save or revert an editor's contents. An asterisk in the editor's title bar indicates it has unsaved data.
A perspective is a set of views, editors, and toolbars, along with their arrangement within the Workbench window. Perspectives are not "modes". As you perform a task, you may rearrange windows, new views, and so on. Your arrangement is saved under the current perspective. The next time you have to perform the same kind of task, simply switch to that perspective and Eclipse will put everything back the way you left it.
For the most part you will be using the built-in Java or Debug perspectives, but you can also select Window > Save Perspective As... to save your current arrangement under a new name.
Five useful icons on the Eclipse toolbar:
|Debug As: debugs the last application you've launched.|
|Run As: runs the last application you've launched.|
|Toggle Mark Occurrences: highlighting an element will highlight all other occurrences of that element in the editor window.|
|Last Edit Location: jumps to the file and location of the last edit you've made.|
|Link with Editor: the Package Explorer will continually update to reflect the active file in the editor window.|
To move a view or editor, click and drag its title bar. You can drag views outside of the Workbench window, or collapse them to an icon on the edge of the window (as a fast view). As you move your cursor it will change shape to indicate actions you can take or places you can drop things on.
Side by Side
By dragging editors, you can show two files side by side. You can also edit two portions of the same file by using the Window > New Editor command.
Eclipse can be used to create anything from a Java program to the next bestselling novel. Regardless of what you're creating, a few basic concepts remain the same...
An Eclipse project is a directory that contains any source files, metadata, resources, and derived files. Typically projects are subdirectories of your workspace directory, but Eclipse allows them to be anywhere on the file system. You can either create a project from scratch or import an existing project from the file system, from CVS, or from an existing Ant build file.
Where possible, Eclipse uses incremental compilation to build derived objects in the background. For example, when you save a Java file in Eclipse, there is no need to run a Build it's already done. In Ant or Make based projects, this build is run after the Save and the results are shown in the Console view. You can turn automatic building on or off with an option: Window > Preferences > General > Workspace > Build automatically. If automatic builds are disabled then you can use Project > Build All (Ctrl+B) to start a build.
Want to track down who broke the build? Open the Annotate View with Team > Show Annotation, then click on a line of code to see who last changed it.
In Eclipse there is no overall 'Run' command. Instead, you use one or more launch configurations, recipes describing how to run or debug your project. To create or modify a launch configuration, select Run > Debug... or Run > Run... depending on whether you want to run the program under the debugger or not. The Debug and Run icons on the toolbar provide a quicker way to do the same thing. Or, press Ctrl+F11 to re-run the last program.
Eclipse has a powerful set of refactoring tools to help reshape your code. Rename variables, move classes between packages, and extract methods without fear of breaking the build. Highlight an element and press Alt+Shift+T to see the list of available refactorings.
CVS synchronization is built into Eclipse. Right click on a resource and select Team >... to see options for synchronizing, committing, and updating. The Team Synchronizing Perspective provides helpful tools for keeping track of pushes and managing merges. The CVS Repository Exploring perspective lets you browse branches and check out projects from existing CVS repositories.
Not using CVS? There are Eclipse plug-ins for every type of version control system, including Subversion, Visual SourceSafe, Git, and Mercurial. Check out the Plug-ins section for the best places to find and download plug-ins.
Change Sets help you keep track of multiple commits in your playpen. Enable the Change Sets view, then select a group of files and right-click Add To > New Change Set.
Control the minutiae of code formatting with Eclipse's plethora of Formatter options. Spend hours tweaking your settings in Window > Preferences > Java > Code Style > Formatter, then format all of your code with Ctrl+Shift+F. Save your formatting profile by selecting "Export" in the profile properties, then share it with your team members.
Automatic Clean Up
Forgetful about formatting? Set up Eclipse to automatically format source code and organize imports on every save. Select Window > Preferences > Java Editor > Save Actions to enable these actions. This dialog also lets you configure actions like removing unnecessary casts or adding missing annotations.
Here are our Top 50 favorite keyboard shortcuts defined by Eclipse. You can replace any of these (or even switch to Emacs bindings) by selecting Window > Preferences > General > Keys.
|F11||F11||Debug Last Launched|
|Ctrl+F11||Cmd+F11||Run Last Launched|
|Ctrl+R||Cmd+R||Run to Line|
|Ctrl+Shift+B||Cmd+Shift+B||Toggle Breakpoint on Line|
|Ctrl+H||Cmd+H||Open Search Dialog|
|Ctrl+L||Cmd+L||Go to Line|
|F2||F2||Show Tooltip Description|
|Shift+F2||Shift+F2||Show External Javadoc|
|Ctrl+F||Cmd+F||Find and Replace|
|Ctrl+Alt+Up||Cmd+Option+Up||Copy Lines Up|
|Alt+Up||Option+Up||Move Lines Up|
|Ctrl+Alt+Down||Cmd+Option+Down||Copy Lines Down|
|Alt+Down||Option+Down||Move Lines Down|
|Alt+Shift+L||Cmd+Option+L||Extract to Local Variable|
|Alt+Shift+M||Cmd+Option+M||Extract to Method|
|Ctrl+Shift+Y||Cmd+Option+Y||Change Method Signature|
|Ctrl+E||Cmd+E||Open Editor Window|
|Ctrl+M||Cmd+M||Maximize Editor Window|
|Ctrl+W||Cmd+W||Close Editor Window|
|Ctrl+Page Up||Cmd+Page Up||Switch to Tab Left|
|Ctrl+Page Down||Cmd+Page Down||Switch to Tab Right|
Aside from a small "bootstrapping" core runtime, Eclipse is made up entirely of plug-ins. Small collections of plug-ins are logically grouped into "features" that are installed and uninstalled as a unit. This figure shows how everything fits together:
The Eclipse SDK is pre-packaged with over 100 plug-ins including plug-ins for basic text editing, Java development, online help, and plug-in development. Literally thousands of other plug-ins have been written to add support for other languages, reporting, charting, database manipulation, J2EE, UML, GUI editing, RSS reading, and so forth.
There are several places on the web where you can find and install plug-ins. The main ones are:
|Eclipse Downloads Home http://download.eclipse.org/eclipse/downloads||Select "By Project" or "By Topic" to access the plug-ins produced by all projects at eclipse.org. Most are downloaded as zip files that need to be manually unpacked like the Eclipse SDK.|
|Eclipse Plugin Central http://eclipseplugincentral.com||This site offers a plug-in directory, reviews, ratings, news, forums, and listings for products and services.|
|Yoxos Subscription Service http://www.yoxos.com||For a small yearly fee you can access the Yoxos Install Manager, which provides a convenient automatic discovery and update service for a consistent and tested set of plug-ins.|
|Source Forge http://sf.net||A large and growing number of Eclipse plug-ins are being developed in this open source nexus.|
|Pulse 2.0 Service http://www.poweredbypulse.com||Pulse 2.0 is a free service for discovering, downloading, and managing Eclipse plug-ins. Pulse allows sharing of profiles among multiple computes, great for bringing work home or showing tips to team members.|
By installing Eclipse and reading this guide, you've already taken the first steps in joining the Eclipse community. To help you go further, web sites, articles, and other resources are available to assist you, as are thousands of Eclipse enthusiasts and professionals from around the world.
|Community Web Sites||Description|
|Eclipse Zone http://eclipsezone.com||An online community for Eclipse users that includes exclusive articles, podcasts, and forums.|
|Eclipse Home Page http://www.eclipse.org||The Eclipse Foundation's home page.|
|Eclipse Newsgroups http://www.eclipse.org/newsgroups||Get peer support from thousands of other users and developers.|
|Planet Eclipse http://planeteclipse.org||Planet Eclipse is a window into the world, work, and lives of Eclipse users and contributors.|
|Eclipsepedia http://wiki.eclipse.org||The official eclipse.org wiki.|
|IBM AlphaWorks http://alphaworks.ibm.com/eclipse||Part of IBM's emerging technologies web site, this is dedicated to Eclipse and WebSphere-related projects and plug-ins.|
|IBM developerWorks http://www.ibm.com/developerworks/opensource||developerWorks hosts a variety of tutorials, articles, and related information on Eclipse and other open source projects.|
|Apache http://www.apache.org||Apache software is used throughout Eclipse, and the two projects collaborate in many areas.|
|O'Reilly Open Source http://opensource.oreilly.com||The O'Reilly Resource Center provides a broad range of references and links to publications about open source.|