Scratchpad
import java.io.*; import java.util.jar.*;
public class JarExtractor {
public static void extractJar(String jarFilePath, String outputDirPath) throws IOException {
// Ensure the output directory exists
File outputDir = new File(outputDirPath);
if (!outputDir.exists()) {
outputDir.mkdirs();
}
// Open the JAR file
try (JarFile jarFile = new JarFile(jarFilePath)) {
// Iterate through JAR entries
jarFile.stream().forEach(entry -> {
if (!entry.isDirectory()) {
File outputFile = new File(outputDir, entry.getName());
try {
// Ensure parent directories exist
outputFile.getParentFile().mkdirs();
// Extract file content
try (InputStream inputStream = jarFile.getInputStream(entry);
OutputStream outputStream = new FileOutputStream(outputFile)) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
}
} catch (IOException e) {
System.err.println("Failed to extract: " + entry.getName());
e.printStackTrace();
}
}
});
}
}
public static void main(String[] args) {
if (args.length < 2) {
System.out.println("Usage: java JarExtractor <jar-file-path> <output-dir