Java: IDEs

Summary: There are many good, free, IDEs (Integrated Development Environments) that provide substantial advantages over the use of simple text editors for Java program development. The IDEs here are available for Windows; Mac versions of many are also available.

Altho IDEs are the most efficient way to develop programs, they are often not taught in text books. This gives the false impression that they aren't important. Why aren't they covered in most textbooks? There are too many choices, it takes some time to teach / learn to use one effectively, and instructors feel is not central to learning programming. IDEs sometimes also hide details that may be important to learn about. Once you know how to do everything on your own, it's easier to understand and use these systems.

Full-strength IDEs

A full-strength IDE can provides extensive programming support for editing, project management, debugging, building GUI interfaces, etc. Surprisingly, most of these are free.

These offer far more than is required by the student Java programmer, and may be a barrier to learning Java because there is a lot to learn to use them.

NetBeans - www.netbeans.org
A free, open-source, IDE is available from Sun Microsystems. This is a good choice for students and others.

Plus: It comes bundled with the Java SDK and the installation is simple without needing to mess with PATH and CLASSPATH. It does continuous compilation, which shows jagged red lines under erroneous statements as they are being entered. There is brace matching, refactoring, debugging and GUI form editing.

Minus: It has a bug that prevents it from reading console input. This, unfortunately, rules it out for use with some textbooks. When will it be fixed?

See NetBeans IDE for more information. java.sun.com has a nice bundle of NetBeans with the JDK. If you don't install the bundle, you must install the JDK first.

Eclipse - www.eclipse.org
IBM's free Eclipse IDE, is popular, and is the first choice of many professionals. It supports the non-standard SWT GUI library as well as the standard Java GUI classes.
JBuilder - www.borland.com
Borland's JBuilder is good and the JBuilder 2005 Foundation Edition seems to be free. See free download.
IntelliJ IDEA - www.jetbrains.com/idea
This is excellent, but expensive. It gets more favorable reviews by everyone who has used it than any other IDE. There is a $99 academic price.
Don't use
There are other IDEs, but most of these aren't suitable for student programs. Don't use Microsoft's Visual J++. Other parts of their Visual .NET Studio may be good, but they have never provided good Java support. Also, steer clear of Symantec's Visual Cafe for Java, which is generally given poor reviews.

Half-strength IDEs

These are simpler to use for small projects, but typically don't have nearly as many features, eg, no graphical user interface editor. Not all have been updated to Java 5 the last time I looked, so check before downloading.

BlueJ - www.bluej.org
BlueJ creates a nice development environment, which allows easy evaluation of isolated statements, inspection of classes, debugging, etc. My reaction to early versions was negative because it couldn't create "real" programs. That has completely changed, and version 2.0.4 addressed most of my earlier reservations. My positive view is the result of only 30 minutes of testing, but it looked very good. There is textbook that is customized to use with it. I've seen it in the past and it had many nice aspects, but I'll have to look that over again. Supports Java 1.5.
jGRASP - www.jgrasp.org
Many like it. The Control Structure Diagramming is nice. Easy to install. Free.

To enable Java 5 features, start with the Compiler menu:
Compiler > Compiler Settings > Workspace > Compiler (Tab) > Environment (Tab)
then choose "j2sdk(1.5) (prefer JDK compiler)", and click the Use button, then OK.

DrJava - drjava.org
A popular, simple, free development system. It enforces indentation and allows immediate evaluation of expressions. Java 5 seems to be supported in recent beta versions.
Others

Editors that run javac

Some programming editors will compile Java by linking to Sun's JDK.

TextPad - www.textpad.com
Good, but doesn't indent program. Has brace matching feature. Pay, but can continue to use trial version with nags. If the Java SDK is installed first, TextPad will allow compilation of Java programs from the editor.
jEdit - www.jedit.org
Free, open-source, and good. This is my favorite editor. Has full set of plugins, eg to indent the source.