package net.mcforkage.ant; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.jar.JarFile; import java.util.jar.Pack200; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; public class Pack200Task extends Task { private File input, output; public void setInput(File f) {input = f;} public void setOutput(File f) {output = f;} @Override public void execute() throws BuildException { if(input == null) throw new BuildException("input file not specified"); if(output == null) throw new BuildException("output file not specified"); try (JarFile in = new JarFile(input)) { try (OutputStream out = new BufferedOutputStream(new FileOutputStream(output))) { Pack200.newPacker().pack(in, out); } } catch(Exception e) { throw new BuildException(e); } } }