The Tomcat download page is confusing. Which file should I download?

Alex Chaffee

First, decide if you want to download a binary or source distribution. You probably want binary. The binary dist is for running, the source dist is for building (compiling). (The binary dists actually include full source code too, for reference, although they are organized somewhat differently, so they won't build without a lot of help.)

Binary distributions are listed at http://jakarta.apache.org/site/binindex.html. Source distributions are listed at http://jakarta.apache.org/site/sourceindex.html.

Second, decide which version you want. The versions are listed at http://jakarta.apache.org/site/binindex.html. These come in three flavors: release, milestone, and nightly. Release builds are generally the most stable, although as is usual with open source projects, milestone builds tend to have more bugs fixed. (Note that I didn't say "fewer bugs," since new bugs get introduced at about the same rate that old bugs get fixed.)

Third, go to the download directory for the version you want. At the time of this writing, the current release version is 3.2.1. This is available at http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.2.1/bin/.

In this directory, you will see several files and directories. The one you want is called jakarta-tomcat-3.2.1.xxx, where "xxx" describes the archive file type. These are more or less supported on different operating systems. Generally,

  • for Unix, use .tar or .tar.gz
  • for Windows, use .zip
  • for Macintosh OS, use .sea or .hqx
The files contained in the various archives are actually exactly the same, although there may be differences in things like line endings.

There is also an archive called jakarta-servletapi-3.2.xxx. This contains the servlet.jar file for the appropriate Servlet Specification. (For Tomcat 3.x, this will be Servlet Spec 2.2.). You may need this JAR file in order to compile your own servlets. In addition to servlet.jar, it also contains the JavaDoc API HTML files, and the .java interface files, for documentation. (Servlet.jar is in the lib/ directory.) See How do I set my CLASSPATH for servlets? for details on using servlet.jar.

Finally, there are several folders, labeled per operating system. (For Tomcat 3.2.1, these folders are called "linux," "netware," and "win32.") These folders contain binary files that may be necessary to integrate Tomcat with your Web server on these platforms. Note that you can always run Tomcat standalone without any of these binary files. Check the documentation on the Jakarta Tomcat Web site for details on the use of these files.