for (Iterator i = redo.iterator(); i.hasNext(); ) { JarSet jarSet = (JarSet) i.next(); args.clear(); args.add("-uf"); args.add(jarFile.getPath()); args.add("-C"); args.add(jarSet.root.getPath()); args.add("."); argStrings = (String[]) args.toArray(new String[args.size()]); runExecutable(Arrays.asList(JAR), argStrings, 0, argStrings.length); }
    public void jar(File jarFile, File manifestFile, JarSet[] jarSets) throws MakeException {        List args = new ArrayList();        if (manifestFile != null) {            args.add("-cmf");            args.add(manifestFile.getPath());        } else {            args.add("-cf");        }        args.add(jarFile.getPath());        for (int j = 0; j < jarSets.length; j++) {            JarSet jarSet = jarSets[j];            if (jarSet.files == null) {                args.add("-C"); // Do all files                args.add(jarSet.root.getPath());                args.add(".");            } else {                String[] tails = getTails(jarSet.root, jarSet.files);                for (int i = 0; i < tails.length; i++) {                    args.add("-C");                    args.add(jarSet.root.getPath());                    args.add(tails[i]);                }            }        }        String[] argStrings = (String[]) args.toArray(new String[args.size()]);        runExecutable(Arrays.asList(JAR), argStrings, 0, argStrings.length);    }