GenJar is distributed as a jar file that holds a bunch of ant tasks. The task is designed to recursively examine each class file in your project, extracting a list of all classes referenced, eventually arriving at the complete set of classes required to execute the application. These classes are then placed into the target jar file creating easily deployable archives. In addition to the jar file, GenJar will also create generate a manifest file, listing every file contained in the Jar, along with size and creation dates.
This is such a neat little utility that is really cool — I do most of my development with WebLogic and all of the WebLogic classes are deployed in a single jar file, weblogic.jar. With v8.1 of WebLogic, the weblogic.jar file is now about 36 MB. Yikes. Hate to deploy that with every client and WebLogic’s answer in this area is a crappy little tool called verboseToZip that does not even address the issue. Nice job John & Jesse.