Eclipse is an OpenSource, Java-based, CrossPlatform IDE. There are a wide range of plugins for editing and compiling JavaCC, XML, Schema, C++, and properties files, amoungst others. Most plugins are developed, distributed and updated separately from the framework, which can take a bit of getting used to.

Though Eclipse can be and is meant to be used for a lot of things besides Java, there are some excellent Java-centric plugins packaged with the main distribution, which integrate tightly with Ant and various Java Compilers and VirtualMachines. They're not perfectly CrossPlatform (projects checked into CVS from Linux may not work out of the box when checked out from Windows, f.ex), but are getting close.

See also: