Thanks very much for following up on this. I am still completely stuck, but I also haven't been able to give it as much attention for the last 24 hours as I would have liked.
Yes, I used the command line zip command on Mac OS X. I don't know how standard that utility is, but I do know that WinZip can unzip the the same file when I copy it to Windows XP and I can unzip it on the two flavors of Linux I have tried (CentOS and Fedora Core 10 so far). The other piece of information I have about this utility is the man page for the Mac OS X zip utility, which says "zip is a compression and file packaging utility for Unix, VMX, MSDOS, OS/2, Windows 9x/NT/XP, Minix, Atari, Macintosh, Amiga, and Acorn RISC OS. It is analogous to a combination of the Unix commands tar and compress and is compatible with PKZIP (Phil Katz's ZIP for MSDOS systems)."
I used the recursive flag to make the file because I am zipping an entire directory with a couple thousand files in that directory. The directory name is "cempart" and the exact command I use to do the zip is: zip -r cempart.zip cempart
I thought that the recursive flag might be the problem, so as a
test I just zipped two files together like this: zip test.zip fileA fileB
But even this simple zip file throws the same ZipException. When I run my code in debug mode within Netbeans, I try to step into the ZipFile constructor to see where the exception is thrown, as you suggested, but the exception is thrown immediately. I never get inside the ZipFile constructor at all. It is strange; maybe I am using the debugger incorrectly in this case, but I have had good luck stepping into Java functions before this.
Thanks again for the help, Aditya.