Menu

Home

Miguel Alejan. Moreno Barrientos

CLA (Command Line Args)


CLA is a small Java library to parse parameters from command line or from a string.
CLA parameters are customizable and can be optionally executed using a CLA executor.

CLA requires JRE 8+

CLA library consists of three classes and an interface: CLAParser, Parameter, ParsedParameterMap, ParamExecutor (interface)

CLA example:

    CLAParser testParser = new CLAParser();

    // param -?
    testParser.addDefaultHelpParameter( System.out, "Test CLA, for Wiki", "?", "-" );  
    // param -version  
    testParser.addParameter( new Parameter(
        "version",  // name
        "-", "",  // prefix, sufix
        "app version",  // description
        false,   // required
        0, 0,  // min-max cardinality
        null,  // fixed values
        (p,v) -> {   // executor
            System.out.println( CLAParser.LIBNAME + ", v" + CLAParser.VERSION );  
            System.exit( 0 );  
        },  
        Integer.MIN_VALUE + 1  // executor order
    ) );  
    // param -echo;
    testParser.addParameter( new Parameter(  
        "echo",  
        "-", ";",  
        "echo values to console",  
        false,  
        0, Integer.MAX_VALUE,  
        null,  
        (p,v) -> System.out.println( String.join( ",", v ) ),
        0 ) );  
    // param -file
    testParser.addParameter( new Parameter(  
        "file",  
        "-", "",  
        "load file",  
        false,  
        1, 1,  
        null,  
        (p,v) -> System.out.println( "Loading file \"" + v.get( 0 ) + "\"" ),
        10 ) );
    // param -color
    testParser.addParameter( new Parameter(  
        "color",  
        "-", "",  
        "set RGB color. Usage: -color R G B",  
        false,  
        3, 3,  
        null,  
        (p,v) -> {
            int r = Integer.parseInt( v.get( 0 ) );
            int g = Integer.parseInt( v.get( 1 ) );
            int b = Integer.parseInt( v.get( 2 ) );
            System.out.println( "Set color to R:" + r + ",G:" + g + ",B:" + b );
        },
        20 ) );

    try
    {
        testParser.parseAndExecute( "-?" );
    }
    catch ( Exception e )
    {
        e.printStackTrace();
    }

Output:

==================================================
Help:
Test CLA, for Wiki
parameter [values{cardinality}] "description"
__________________________________________________
-? "Help about this command"
-color value{3} "set RGB color. Usage: -color R G B"
-echo; value{0-inf} "echo values by console"
-file value{1} "load file"
-version "app version"
==================================================

Output for testParser.parseAndExecute( "-color 100 5 255 -file \"hi all.txt\"" ); :

Loading file "hi all.txt"
Set color to R:100,G:5,B:255

Output for testParser.parseAndExecute( "-echo; p1 p2 p3 p4 -color 0 0 0" ); :

p1,p2,p3,p4
Set color to R:0,G:0,B:0