Appendix A. The Eclipse IDE

This is a tutorial about the Java language and as such we've tried to avoid talking too much about specific tools and apps. But of course, we've had to make some exceptions where the real world of Java coding and de facto standards dictate. An example of this is the Apache Ant build tool that we discussed briefly in . Ant has become a de facto standard for building Java apps and something that every Java programmer should at least be aware of. A more challenging topic to cover is that of Java integrated development environments (IDEs). A wide array of Java IDEs are available, with greatly varying features. Like all apps with a great deal of interest, IDEs are constantly changing and improving. Throughout this tutorial, rather than distract from the topic at hand with screenshots of one IDE or another, we've chosen to refer only to simple command-line tools. In the real world, many if not most Java developers now use IDEs, so our approach paints a bit of a skewed picture of the process. We aim to rectify the situation here by introducing the Eclipse IDE and showing how to use it to load and explore all of the example code from this tutorial. IDEs offer many benefits as well as a few drawbacks, especially for the new Java programmer. The benefits include an all-in-one view of Java source code with syntax highlighting, navigation help, source control, integrated documentation, building, refactoring, and deployment all at your fingertips. The downside, historically at least, has been that the all-in-one tool tends to become an all-or-nothing tool that locks users into the product and makes them all but helpless without it. IDEs tend to encourage an overly simplistic project layout with no structure or partitioning to help humans understand it. IDEs can also become hairballs of state and information about the project that cannot be easily shared with other developers or across projects. Many of these problems are being addressed by the latest generation of IDEs, and, for most people, the benefits far outweigh the negatives.