You might take a look at
http://rptools.net/ where there are a bunch of open source and free Java-based tools. So far, it seems that the MapTool isn't ready for prime time yet. (I've played with the Java WebStart version but found that there are a lot of things it doesn't do yet.)
You might also consider OpenRPG from
http://www.openrpg.com/ It's Python-based (another interpreted language) so it's fairly portable. I've had problems getting it to do what I want, although a lot of people claim to be using it extensively?!
I'm writing my own Java-based tool, DndMapper, that is heavily influenced by the non-free TabletopMapper (which was written in VB and hence non-portable).
If you'd like to check out DndMapper, it's available for download from
http://www.eeconsulting.net/tmp/ along with all of the design documents as well. When it reaches release 1.0, I'll get a project page at Sourceforge for it. The Java source code is inside the JAR file along with the executable. It's not much more than MapTool right now; although once I add the fog-of-war support, I plan to use it with my overhead projector -- I'll project the map onto a battlemat and use figs to represent creatures, although the design is based on being able to represent creatures and other objects inside the mapping tool. It'll have support for verifying line-of-sight, calculating movement distances, representing spell effects, and so forth. And it has an inherent DM vs. Player design so that it can be networked directly to the players laptops (although networking isn't in it yet, the design includes models with multithreaded support to make this easier). There is some discussion of this tool on the
DMGenie forums.
Hope that helps.