public static void unzip(File zipfile, File directory)
	{
		ZipFile zfile;
		try
		{
			zfile = new ZipFile(zipfile);
			final Enumeration<? extends ZipEntry> entries = zfile.entries();
			while (entries.hasMoreElements())
			{
				final ZipEntry entry = entries.nextElement();
				final File file = new File(directory, entry.getName());
				if (entry.isDirectory())
				{
					file.mkdirs();
				}
				else
				{
					file.getParentFile().mkdirs();
					final InputStream in = zfile.getInputStream(entry);
					try
					{
						copy(in, file);
					}
					finally
					{
						in.close();
					}
				}
			}
		}
		catch (final IOException e)
		{
			if (e.getMessage().equals("zip file is empty"))
			{
				System.err.println("ERROR: " + e.getMessage());
			}
			else
			{
				e.printStackTrace();
			}
		}
	}