NISTMonte was developed using free (no cost) tools. These tools are described in subsequent paragraphs. While NISTMonte was developed within Windows and Linux, it should also be possible to build and use the library in Solaris and OS-X. Most of the tools mentioned below are pure-Java and can be used in any platform with a recent enough Java runtime environment (JRE).
NISTMonte is written in Sun's Java language. NISTMonte was compiled using the Java 2 Platform Standard Edition (J2SE) version 5.0 (also sometimes referred to as version 1.5 or Tiger). Version 1 of the library did not use any 5.0 specific features. Version 2 uses a handful of 5.0 specific library methods but does not use any of the new syntactic features.
J2SE is available in two flavors – the JRE (Java Runtime Environment) and the JDK (Java Developers Kit). To build NISTMonte you will need the J2SE JDK. The J2SE JDK is available from multiple sources at no cost. The simplest choice is to download it directly from Sun. The JDK is available for multiple different platforms including Windows, Linux, Solaris and OS-X. You may also want to download the JDK documentation.
In addition to the JDK you will need a handful of Java Archive files (JAR libraries). The version of each of these libraries against which the current version was build is included in the NISTMonte installations. If you want more recent versions you can download them from the appropriate web site. NISTMonte makes use of the JAMA matrix library, the JUnit testing library, and the Jython scripting language. Other libraries I have found useful include JGoodies Forms, JGoodies Looks, Java Advanced Imaging, Java Advanced Imaging Image I/O, WinLAF high fidelity Windows Look-and-Feel, XStream XML library,
NISTMonte was developed in the Eclipse development environment. Eclipse is a full featured and very professional integrated development environment (IDE) for “everything and nothing at all.” The base Eclipse installation includes a full featured Java development environment with support for JUnit which can be further extended with tools for Java GUI development, Java Web development and much more. Eclipse also has extensions for other languages such as Jython and C/C++. You will probably want to install the Eclipse Visual Editor if you want to develop Java Swing user interfaces.
The Windows installation was developed using Nullsoft Scriptable Install System. There is a plug-in available for Eclipse to assist with developing Nullsoft scripts.
Internally, we use Subversion and TortoiseSVN for revision control. Revision control is an important part of any non-trivial software development project. Not only does it facilitate multiple developers working together but it also allows a complete historical record of the development of a project. This record can be used to track the introduction of features or anti-features (aka bugs). It also allows variants of projects to be developed in an efficient manner.