Developing Java software is a non-trivial activity, so the more tools we can find to help us with that development, and to help us test the software during its development and prior to its release, the better.

The two most fundamental tools are, of course, the Java compiler (javac) and the Java interpreter (java). Each of these can be used directly at the command line prompt, or they may be combined with other tools and support facilities for Java development within an IDE (Integrated Development Environment) of some sort (JBuilder or NetBeans, for example).

However, the compiler and the interpreter are just the two most essential tools among an already large, and ever-growing, collection of sofware support tools available to Java developers. Some of these additional tools, such as javap and javadoc, you can expect to find in any Java installation because they are standard utilities in Sun's Java SDK (Software Development Kit). Other tools, such as Ant and JUnit, have been developed by third parties, but are freely available over the internet and have come to be regarded as essential components for the toolkit of any serious Java developer.

The testing part of software development is, unfortunately, the part that should always get more attention than it normally does, and that (therefore) generally gets much less attention than it needs. Part of the problem is that programmers have great difficulty believing that they do not write perfect code, and writing test code can be very tedious and is always much less fun than writing the "real thing". For this reason, tools that support testing and, more generally, any of the boring and repetitive parts of program development, are especially welcome.