OK, so that's a bit of a joke. Go ahead, send this to a customer and see how
it flies. Unless your customer is a Java developer, you'll going to get some
pretty strange looks.

It's a lot more reasonable to package these files up into a simple installer for
the user. To accomplish this, we'll turn to the free version of the ZeroG InstallAnywhere product.

Note: One thing I've done here is put all of the various JAR files
into a single lib directory, which means that some of the typical Tomcat CLASSPATH
gradations are thrown out; for our purposes, that's fine. For "real-world" usage, it
may make sense to merge these JARs as an integrated "platform" release,
perhaps using Ant to crack and then rebuild a single merged JAR file. Or
even better, build a system for managing and tracking the latest release
versions (although that does get us closer to emulating the "DLL Hell"
problem one sees on Windows).

Building the Installer

After downloading, installing, and launching, you'll be presented with a wizard
for setting up your installer, as shown in Figure 4.

Figure 4. InstallAnywhere Now! New Project

Name your project, as shown in Figure 5.

Figure 5. Product Name

Add your various supporting files, as shown in Figure 6.

Figure 6. Adding Files

You'll then be prompted to set the application's main() class. InstallAnywhere will auto-detect the classes with main() methods (as shown in Figure 7). We're going to point InstallAnywhere at onjava.TomcatWrapper for our application, which you can enter manually.

Figure 7. Finding main()

In the next panel, you'll set the CLASSPATH for the application, as shown in
Figure 8. You'll note that I've deselected the WAR file.

Figure 8. Setting the CLASSPATH

Finally, in Figure 9, you'll see the options for building
the various installers. You can download various virtual machines as files from
InstallAnywhere's web site and have a single installer build multiple versions.
You'll note that I'm building a Windows installer, complete with bundled JVM, on
a Mac OS X system. Before you click Build, however, click on the Advanced
Designer button to switch the wizard to the interactive installer builder.