<p>I have an application running in tomcat that has a bunch of configuration files that are different for each environment it runs in (dev, testing, and production). But not every line in a config file will be different between environments so there's invariably duplicated information that doesn't get updated if something changes. </p>

<p>Is there a good framework/library that collapses the separate files into one with environment specific blocks? Or some other way of dealing with this?</p>

A Properties file is what I've always used.  It's editable by hand as well as in in your software and the Properties object can read itself in and write itself out to the filesystem.  Here's the javadoc page:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html