Learn and teach Java even with graphics of class structures, vm, compiler and debugger, using BlueJ
BlueJ is a free program that will help you to learn and teach Java programming.
The program is designed especially for beginners and features graphical representations of classes, a compiler, a virtual machine, a debugger, several extensions, and detailed help files.
If you are thinking to learn Java programming, BlueJ is a convenient and powerful program and workspace / environment you don’t want to miss. BlueJ lets you also export your code as a .jar file.