* @throws IllegalArgumentException if an argument was invalid
* @throws HelpException if help was requested and the agent should not be created
*/
private void processArguments(String[] args) throws Exception {
String sopts = "-:hdlLasntguD:i:o:c:p:e:";
LongOpt[] lopts = { new LongOpt("help", LongOpt.NO_ARGUMENT, null, 'h'),
new LongOpt("input", LongOpt.REQUIRED_ARGUMENT, null, 'i'),
new LongOpt("output", LongOpt.REQUIRED_ARGUMENT, null, 'o'),
new LongOpt("config", LongOpt.REQUIRED_ARGUMENT, null, 'c'),
new LongOpt("pref", LongOpt.REQUIRED_ARGUMENT, null, 'p'),
new LongOpt("console", LongOpt.REQUIRED_ARGUMENT, null, 'e'),
new LongOpt("daemon", LongOpt.NO_ARGUMENT, null, 'd'),
new LongOpt("cleanconfig", LongOpt.NO_ARGUMENT, null, 'l'),
new LongOpt("fullcleanconfig", LongOpt.NO_ARGUMENT, null, 'L'),
new LongOpt("advanced", LongOpt.NO_ARGUMENT, null, 'a'),
new LongOpt("setup", LongOpt.NO_ARGUMENT, null, 's'),
new LongOpt("nostart", LongOpt.NO_ARGUMENT, null, 'n'),
new LongOpt("nonative", LongOpt.NO_ARGUMENT, null, 't'),
new LongOpt("purgeplugins", LongOpt.NO_ARGUMENT, null, 'g'),
new LongOpt("purgedata", LongOpt.NO_ARGUMENT, null, 'u') };
String config_file_name = null;
boolean clean_config = false;
boolean clean_token = false; // only used if clean_config = true
boolean purge_data = false;