Compilers:
User interfaces for programming with Java (all are free downloads):
Eclipse is my hands-down favorite for “real” work.
You can get the Oracle NetBeans IDE along with the J2SE download.
You can also use Linux/CygWin/OSX emacs
or vim
as described in CS252