I can't believe I didn't test this, but the Zip Library I built and posted a while ago was not working with Jar files.  I fixed it, I think it is working now.  Any problems, let me know.

[Update, 2007 January 4: Someone asked in the comments how to extract a ZipEntry to a particular folder.  There is an Extract() method in the ZipEntry class that accepts a string name of a target directory as an argument.  When the entry is extracted it is created using the specified directory as the root of the tree.  ZipEntry's themselves may have a relative path, so the actual entry may be one or more subdirectory levels deep in the extracted tree.] 

[30 October 2007: updated with latest source.  Also, the zip library has graduated to a CodePlex project. See DotNetZip on CodePlex  ]