GenJar is a specialized Ant task that builds jar files based on class dependencies rather than simply the contents of a directory.

GenJar was originally created by John W. Kohler (jake at riggshill.com).

Work is underway on GenJar2. GenJar2 will be a functional replacement of GenJar, but build file syntax will change. Some of the features of GenJar2 include:

  • Syntax consistent with Ant's jar task
  • Replacement of GenJar's <manifest> with Ant's <manifest>
  • Replacement of GenJar's <resource> with with Ant's <zipfileset>
  • BCEL for class dependency checking

The original GenJar branch will be maintained for as long as there is demand.


  • 2003-03-06      GenJar 1.0.2 is released.
  • 2003-02-23      GenJar 1.0.1 is released.
  • 2002-09-30      GenJar 1.0.0 is released.
  • 2002-09-26      GenJar moves to SourceForge.
  • 2002-09-06      Jesse Stockall assumes stewardship of GenJar.

1.0.2 (2003-03-06)
  • Fix exception message regression introduced in 1.0.1
1.0.1 (2003-02-23)
  • com.ibm.jvm added to default exclude list
  • Fix bug# 619762, META-INF directory of <library> jars is now ignored as signing information from the old jar was causing the verify to fail
  • Fix bug# 686070, Handling of Windows paths in <library> was incorrect
  • Fix bug# 643263, Handle uppercase classpath entries
  • Fix bug# 631562, Files on classpath were not being closed properly
  • Document <class>'s ability to handle <fileset>s
  • Add a properties file for <taskdef>ing GenJar
1.0.0 (2002-09-30)
  • First release at SourceForge.
  • Allow GenJar to generate class file dependencies to disk.
  • Fix a few bugs in the <resource> and <library> elements.
0.3.3 (2002-01-13) www.riggshill.com
  • Several bug reports have come in in the last month:
  • Absoulte jarfile paths were not handled correctly - was testing agains PATH separator instead of FILE separator - fixed
0.3.0 (2001-05-02) www.riggshill.com
  • Added tag allowing insertion of entire jars or directories into the jar - new class LibrarySpec.java updated docs to reflect new tag
  • Fixed - was using a static Set to track those classes already resolved. Making this set non-static fixed the problem
0.2.4 (2001-04-25) www.riggshill.com
  • Added project.baseDir to generated jar file name - bug reported by JeffPost - jars were ending up in the root dir
0.2.3 (2001-04-23) www.riggshill.com
  • Added duplicate removal - all incoming jarEntries are tested against existing list - first addition wins