public static void unzip(String zipFile, String location) throws IOException {
	    try {
	        File f = new File(location);
	        if (!f.isDirectory()) f.mkdirs();
	        ZipInputStream zin = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipFile)));
	        try {
	            ZipEntry ze = null;
	            while ((ze = zin.getNextEntry()) != null) {
	                String path = location + ze.getName();

	                if (ze.isDirectory()) {
	                    File unzipFile = new File(path);
	                    if (!unzipFile.isDirectory()) unzipFile.mkdirs();
	                } else {
	                	BufferedOutputStream fout = new BufferedOutputStream(new FileOutputStream(path, false));
	                    try {
	                        for (int c = zin.read(); c != -1; c = zin.read()) {
	                            fout.write(c);
	                        }
	                        zin.closeEntry();
	                    } finally {
	                        fout.close();
	                    }
	                }
	            }
	        } finally {
	            zin.close();
	        }
	    } catch (Exception e) {
	    	CommonUtils.throwRuntimeExceptionAndPrint(e);
	    }
	}