经过尝试,写了下面的代码,可以用了:
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.SystemUtils;
import org.xidea.jsi.tools.JSIToolkit;
import org.xidea.jsi.tools.JavaScriptCompressor;
/**
 * @author Sutra
 * 
 */
public class JavaScriptCompress {
    public static void main(String[] args) throws IOException {
        Options options = new Options();
        Option option = new Option("i", "input", true, "javascript file path");
        option.setRequired(true);
        options.addOption(option);
        option = new Option("e", "encoding", true, "encoding");
        option.setRequired(false);
        options.addOption(option);
        CommandLineParser parser = new PosixParser();
        CommandLine cmd;
        try {
            cmd = parser.parse(options, args);
        } catch (ParseException e) {
            usage(options);
            return;
        }
        String file = cmd.getOptionValue('i');
        String encoding = SystemUtils.FILE_ENCODING;
        if (cmd.hasOption('e')) {
            encoding = cmd.getOptionValue('e');
        }
        JavaScriptCompressor jscompressor = JSIToolkit.getInstance()
                .getCompressorImpl();
        String source = FileUtils.readFileToString(new File(file), encoding);
        PrintStream out = System.out;
        System.setOut(new PrintStream(new java.io.ByteArrayOutputStream()));
        String ret = jscompressor.compress(source, null, true, false);
        out.println(ret);
    }
    private static void usage(Options options) {
        HelpFormatter formatter = new HelpFormatter();
        formatter.printHelp("jscompress", options);
    }
}
不知道作者是不是已经提供了命令行的接口?