in maven-wrapper/src/main/java/org/apache/maven/wrapper/Installer.java [177:201]
public void unzip(Path zip, Path dest) throws IOException {
final Path destDir = dest.normalize();
try (ZipFile zipFile = new ZipFile(zip.toFile())) {
final Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
final ZipEntry entry = entries.nextElement();
Path fileEntry = destDir.resolve(entry.getName()).normalize();
if (!fileEntry.startsWith(destDir)) {
throw new ZipException("Zip includes an invalid entry: " + entry.getName());
}
if (entry.isDirectory()) {
continue;
}
Files.createDirectories(fileEntry.getParent());
try (InputStream inStream = zipFile.getInputStream(entry)) {
Files.copy(inStream, fileEntry);
}
}
}
}