Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Announcing JCommander 1.0

DZone's Guide to

Announcing JCommander 1.0

·
Free Resource

Recently, I got tired of having to handle command line parsing manually. I took a look at existing frameworks and all the ones that I found (JOpts, JArgs, commons-cli) suffered from the same limitations that I was trying to avoid: they barely cut down on the boiler plate code and they are not very type safe.

So I came up with my own framework, which I called JCommander.

import com.beust.jcommander.Parameter;

public class JCommanderTest {
@Parameter
public List<String> 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;
}

The snippet of code above should give you a pretty good idea of what JCommander looks like, and if you need more information, just head over to the main site. I have already integrated JCommander in TestNG and it has already reduced the code base to handle this simple task significantly.

Let me know what you think.

From http://beust.com/weblog/2010/07/13/announcing-jcommander-1-0

Topics:

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}