# jcommander **Repository Path**: caosuwenwu/jcommander ## Basic Information - **Project Name**: jcommander - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-25 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README JCommander ========== This is an annotation based parameter parsing framework for Java 8. Here is a quick example: ```java public class JCommanderTest { @Parameter public List parameters = Lists.newArrayList(); @Parameter(names = { "-log", "-verbose" }, description = "Level of verbosity") public Integer verbose = 1; @Parameter(names = "-groups", description = "Comma-separated list of group names to be run") public String groups; @Parameter(names = "-debug", description = "Debug mode") public boolean debug = false; @DynamicParameter(names = "-D", description = "Dynamic parameters go here") public Map dynamicParams = new HashMap(); } ``` and how you use it: ```java JCommanderTest jct = new JCommanderTest(); String[] argv = { "-log", "2", "-groups", "unit1,unit2,unit3", "-debug", "-Doption=value", "a", "b", "c" }; JCommander.newBuilder() .addObject(jct) .build() .parse(argv); Assert.assertEquals(2, jct.verbose.intValue()); Assert.assertEquals("unit1,unit2,unit3", jct.groups); Assert.assertEquals(true, jct.debug); Assert.assertEquals("value", jct.dynamicParams.get("option")); Assert.assertEquals(Arrays.asList("a", "b", "c"), jct.parameters); ``` The full doc is available at [https://jcommander.org](https://jcommander.org). ## Building JCommander ``` ./gradlew assemble ```