public static void main(String[] args) throws Exception {
        LOG.info("Args: ");
        int i = 0;
        for (String arg : args) {
            LOG.info("{}:{}", i++, arg);
        }

        // create Options object
        Options options = new Options();
        options.addOption("array_id", true, "the parameter to process");
        options.addOption("database", true, "the database stem to use");
        options.addOption("db_hostname", true, "the database hostname to use");
        options.addOption("db_port", true, "the database port to use");
        options.addOption("?", false, "print this message");

        try {
            CommandLineParser parser = new GnuParser();
            // parse the command line arguments
            CommandLine line = parser.parse(options, args);

            if (line.hasOption("?")) {
                // automatically generate the help statement
                HelpFormatter formatter = new HelpFormatter();
                formatter.printHelp("MergeSkynetResults", options);
                return;
            }

            if (!line.hasOption("db_hostname")) {
                LOG.error("DB Hostname not given");
                HelpFormatter formatter = new HelpFormatter();
                formatter.printHelp("MergeSkynetResults", options);
                return;
            }

                setup(line);
        } catch (Throwable e) {
            // oops, something went wrong
            LOG.error("Exception Caught", e);
            // automatically generate the help statement
            HelpFormatter formatter = new HelpFormatter();
            formatter.printHelp("MergeSkynetResults Error", options);
            return;
        }

        MergeSkynetResults msr = new MergeSkynetResults();
        msr.mergeParameterNumber();
    }