Jar utility I found, how do I use this?
Code:
public class JarUtil {
public static HashMap<String, ClassNode> parseJar(JarFile jar) {
HashMap<String, ClassNode> classes = new HashMap<String, ClassNode>();
try {
Enumeration<?> enumeration = jar.entries();
while (enumeration.hasMoreElements()) {
JarEntry entry = (JarEntry) enumeration.nextElement();
if (entry.getName().endsWith(".class")) {
ClassReader cr = new ClassReader(jar.getInputStream(entry));
ClassNode cn = new ClassNode();
cr.accept(cn, 6);
classes.put(cn.name, cn);
}
}
jar.close();
} catch (IOException e) {
e.printStackTrace();
}
return classes;
}
public static void dumpClasses(HashMap<String, ClassNode> classes) {
try {
File file = new File("out.jar");
JarOutputStream out = new JarOutputStream(
new FileOutputStream(file));
for (ClassNode node : classes.values()) {
JarEntry entry = new JarEntry(node.name + ".class");
out.putNextEntry(entry);
ClassWriter writer = new ClassWriter(1);
node.accept(writer);
writer.toByteArray();
byte[] b = writer.toByteArray();
out.write(b);
}
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
I know the syntax would be
Code:
dumpClasses(String, ClassNode);
but what's a node? i'm confused.