So what's the deal with the build file? I make that (I suspect this), or it gets made by Ant and used for compilation?
You create it, but it can be (and usually is) for lots more things than just compilation
Do I need that before I start? Do I need one for each class or just one for the class with the main method?
Yep, w/o it Ant won't know what to do. The
compile task can compile all source files in a directory hierarchy in one go.
And the ant home and java home properties.... I make those (there's no installer for Ant, I just unzip it, right?)? I've never made my own named property for an OS.... is it similar to setting Path and Classpath?
Just unzip the Ant distribution, and point ANT_HOME to that directory. To be precise, ANT_HOME is an environment variable, not a property. JAVA_HOME should already be defined if you have a JDK installed.
HeadFirst Servlets says I need a building environment.... with folders and a tree hierarchy. Does that mean I need to start using packages, or can I skip that and continue to put things in the same directories?
You really should start using packages, although Ant doesn't require it. But since it takes a lot of the hassle out of dealing with directories, it makes the pain much less :-)
I'm attaching a basic build file that compiles all files in a directory hierarchy, and then bundles them all up in a double-clickable jar file.