You need software tools to build Java programs.
Unless otherwise indicated, all tools mentioned here are
freely available, and most of them are open-source.
- Sun's Java Software Development Kit
- Sun's SDK (formerly known as the JDK - Java Development Kit)
is the most commonly used tool to compile and run Java programs.
It's a good compiler, but it has a command line user interface.
It is typically used with a text editor.
- GCJ Compiler
- This is an open-source Java compiler. It shouldn't be your first
choice. Perhaps the greatest strength of Java is the extensive
library. Unfortunately GCJ doesn't support all library classes, most
notably the GUI classes.
A very interesting aspect of GCJ is that it compiles directly
to machine code instead of to Java Byte Code.
The only reason I include it here is to take part
in the online Valladolid Programming Contest
you will need to use this compiler.
- Text Editors
- Text editors are used to
write the source programs. Some of them link directly to a compiler,
but often you will run the compiler as a separate step to
compile the source program.
- IDEs - Integrated Development Environments
- IDEs are systems that contain all the tools that you need to
edit, compile, and test programs, manage projects, ....
An IDE is the high-productivity
tool professionals use to produce programs. They may not always be
the best choice for students because learning the IDE in addition
to the language can be a burden on the student.
They also hide the underlying mechanisms
that students should understand when they are starting to program,
but don't want to worry about later.
- Other development tools
- As your programs move beyond simple student programs,
additional tools will be needed. Some of there are
included in IDEs, but many are used independently.
- Code beautifiers are great for indenting your code correctly.
I rarely use them because I'm compulsive about indentation from
the beginning, but there are a lot of links at
mindprod.com/jgloss/beautifier.html.
I've used Arachnophilia, NetBeans, and Artistic Style at various
times in the past, but am not sure which is currently the best choice.
- Style and Correctness Checkers can
be used to detect or eliminate problems in your programs.
- Ant is the Java replacement for
the traditional Unix make tool for automating the
compilation process.
At the simplest, one plain ant command
recompiles all source files which have been changed since
the last compilation. It can, however, automate all
aspects of development.
- javadoc creates documentation
automatically from special comments in your Java programs.
It comes with Sun's JDK.
- JUnit (www.junit.org) is the single most important tool for
running unit test cases. Other tools can be used
for testing GUI interfaces.
- ZeroG or IzPack
create an installable Windows program from your Java programs.
- PMD (pmd.sourceforge.net) - Checks code for errors.