备忘:ApacheCLI制作精致的命令行应用

编程

CLI是Jakarta Commons中的一个子类。如果你仅仅只有一到两个参数需要处理,那么使用它有点多余,但是,如果你需要从命令行中捕获大多数应用程序的设置参数,那么使用CLI是恰到好处的。

在使用CLI之前需要创建一个Options对象,该对象相当于一个容器,另外还有Option对象,每个Option对象相对于命令行中的一个参数。

Options opts = new Options();

通过利用这个Options,你可以使用addOption()方法定义你的应用程序可接受的命令行参数,每次都为一个option调用一次这个方法,看下面例示:

opts.addOption("h", false, "Print help for this application"); opts.addOption("u", true, "The username to use"); opts.addOption("dsn", true, "The data source to use");

当然你也可以单独创建Option对线,然后使用addOption()方法添加进去。如下:

Option op = new Option("h", false, "Print help for this application");

一旦你定义了类的参数,创建一个CommandLineParser,并分析已传送到主方法中的组。

BasicParser parser = new BasicParser(); CommandLine cl = parser.parse(opts, args);

等到所有的参数都被解析以后,你可以开始检查返回的命令行,这些命令行中,提供用户的参数和值已被语法分析程序详细检查过了。

if (cl.hasOption("h")) { HelpFormatter hf = new HelpFormatter(); hf.printHelp("OptionsTip", opts); } else { System.out.println(cl.getOptionValue("u")); System.out.println(cl.getOptionValue("dsn")); }

就象你看到的那样,你可以使用HelpRormatter类为你的程序自动地产生使用信息。

下面看一下全部的代码:

package com.founder.common;

import org.apache.commons.cli.BasicParser; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException;

public class OptionsTip {

public static void main(String[] args) { try { Options opts = new Options(); opts.addOption("h", false, "Print help for this application"); opts.addOption("u", true, "The username to use"); opts.addOption("dsn", true, "The data source to use"); BasicParser parser = new BasicParser(); CommandLine cl = parser.parse(opts, args);

if (cl.hasOption("h")) {

HelpFormatter hf = new HelpFormatter();

hf.printHelp("OptionsTip", opts);

} else {

System.out.println(cl.getOptionValue("u"));

System.out.println(cl.getOptionValue("dsn"));

}

} catch (ParseException pe) { pe.printStackTrace(); }

}

}

注:使用此程序时候别忘了把commons-cli-1.0.jar加入到你的classpath中

运行结果:

E:javaworkspacecollectionsrc>java com.founder.common.OptionsTip -h usage: OptionsTip -dsn The data source to use -h Print help for this application -u The username to use

E:javaworkspacecollectionsrc>java com.founder.common.OptionsTip -u eric -dsn founder eric founder

以上是 备忘:ApacheCLI制作精致的命令行应用 的全部内容, 来源链接: utcz.com/z/510551.html

回到顶部