The example below parses the command line for options and arguments.
import java.util.List; import org.freehep.util.argv.ArgumentFormatException; import org.freehep.util.argv.ArgumentParser; import org.freehep.util.argv.BooleanOption; import org.freehep.util.argv.ListParameter; import org.freehep.util.argv.MissingArgumentException; import org.freehep.util.argv.StringOption; import org.freehep.util.argv.StringParameter; public class Example1 { public static void main(String[] args) { // Setup all options and arguments BooleanOption help = new BooleanOption("-help", "-h", "Show this help page", true); BooleanOption version = new BooleanOption("-version", "-v", "Show product version", true); BooleanOption rtti = new BooleanOption("-rtti", "-r", "Print RTTI to stdout"); BooleanOption noGenerate = new BooleanOption("-nogenerate", "-n", "Do not generate any code"); StringOption directory = new StringOption("-directory", "-d", "output dir", ".", "Output into directory instead of current directory"); StringOption property = new StringOption("-property", "-p", "property directory", ".", "Read user property files from directory instead of current directory"); BooleanOption force = new BooleanOption("-force", "-f", "Force overwriting of output files"); BooleanOption ignore = new BooleanOption("-ignore", "-i", "Ignore errors from the parser"); BooleanOption verbose = new BooleanOption("-verbose", "-V", "Verbose"); StringParameter generatorParameter = new StringParameter("generator", "A generator, one of JavaInterfaceGenerator, JavaClassGenerator, CPPHeaderGenerator, PythonClassGenerator, ..."); ListParameter files = new ListParameter("files", "files"); // create the command line parser ArgumentParser cl = new ArgumentParser("Example1 - example based on the AID compiler"); cl.add(help); cl.add(version); cl.add(rtti); cl.add(noGenerate); cl.add(directory); cl.add(property); cl.add(force); cl.add(ignore); cl.add(verbose); cl.add(generatorParameter); cl.add(files); // parse the user supplied arguments try { List extra = cl.parse(args); if( !extra.isEmpty() || help.getValue()) { cl.printUsage( System.out ); return 0; } if (version.getValue()) { System.out.println("0.1"); return 0; } } catch (MissingArgumentException mae) { System.out.println(mae.getMessage()); return 0; } catch (ArgumentFormatException afe) { System.out.println(afe.getMessage()); return 0; } // access options and arguments boolean showRTTI = rtti.getValue(); String outDirectory = directory.getValue(); List fileList = files.getValue(); } }