import javax.swing.*; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.TimeZone; import java.util.concurrent.CountDownLatch; import java.util.jar.JarOutputStream; import java.util.jar.Pack200; /** * Created with IntelliJ IDEA. * User: mcherkas * Date: 12/12/14 * Time: 7:19 PM * To change this template use File | Settings | File Templates. */ public class ESC20176847{ private static final int THREAD_COUNT = 50; private static final CountDownLatch startLatch = new CountDownLatch(THREAD_COUNT); private static final CountDownLatch doneLatch = new CountDownLatch(THREAD_COUNT); public static void main(final String[] args) throws InterruptedException { System.out.println(TimeZone.getDefault()); for (int i = 0; i < THREAD_COUNT; i++) { final int finalI = i; new Thread() { @Override public void run() { try { Pack200.Unpacker unpacker = Pack200.newUnpacker(); startLatch.countDown(); startLatch.await(); unpacker.unpack(new File("C:\\opt\\nginx-1.4.1\\html\\timezone\\untrusted.jar.pack"), new JarOutputStream(new FileOutputStream("./unpackedjar" + finalI + "_jar"))); } catch (Exception e) { e.printStackTrace(); } finally { doneLatch.countDown(); } } }.start(); } doneLatch.await(); System.out.println(TimeZone.getDefault()); } }