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 listed 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.
A full-strength IDE provides extensive programming support for editing, project management, debugging, building GUI interfaces, etc. Surprisingly, most of these are now free.
These offer far more than is required by the student Java programmer, and may be a barrier to learning Java in the beginning because you have to learn to use them. However, there is a big payoff in productivity once you are comfortable with one. Most (all?) of these require installing the Sun JDK ( free at java.sun.com) first.
It does continuous compilation, which shows jagged red lines under erroneous statements as they are being entered. There is brace matching, refactoring, reformatting, debugging, GUI form editing, and much more.
These are simpler to use for small projects, but typically don't have nearly as many features, eg, no graphical user interface editor.
To enable Java 5 features, start with the Settings menu:
Compiler > Compiler Settings > Workspace > Compiler (Tab) > Environment (Tab)
then choose "j2sdk1.5 (prefer JDK compiler)", and click the Use button, then OK. I didn't figure out how to turn on assertion checking in my brief test.
Some programming editors will compile Java by linking to Sun's JDK.
My favorite happens to be NetBeans, but this doesn't mean it's best for you. Some factors that might be important are:
If you have no compelling reasons for another choice, I recommend NetBeans. It has nice features that make coding easier, and once you become familiar with its Graphical User Interface (GUI) editor, you can create GUI interfaces very quickly.