Java examples for Reflection:Jar
test Un Jar
import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import java.util.jar.Attributes; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; import java.util.jar.Manifest; public class Main{ public static void testUnJar() { String targetPath = System.getProperty("user.home") + File.separator + "temp" + File.separator + "education-1.jar"; File jarFile = new File(targetPath); File toDir = new File(System.getProperty("user.home") + File.separator + "temp"); try {/*from www . j a v a 2 s .c om*/ JarUtil.unJar(jarFile, toDir); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void unJar(File jarFile, File toDir) throws IOException { JarFile jar = new JarFile(jarFile); try { @SuppressWarnings("rawtypes") Enumeration entries = jar.entries(); while (entries.hasMoreElements()) { JarEntry entry = (JarEntry) entries.nextElement(); if (!entry.isDirectory()) { InputStream in = jar.getInputStream(entry); try { File file = new File(toDir, entry.getName()); if (!file.getParentFile().mkdirs()) { if (!file.getParentFile().isDirectory()) { throw new IOException( "Mkdirs failed to create " + file.getParentFile() .toString()); } } OutputStream out = new FileOutputStream(file); try { byte[] buffer = new byte[8192]; int i; while ((i = in.read(buffer)) != -1) { out.write(buffer, 0, i); } } finally { out.close(); } } finally { in.close(); } } } } finally { jar.close(); } } }