正 文

利用CLI处理命令行


www.7dspace.com  更新日期:2006-1-23 4:21:56  七度空间


编写一些代码来分析命令行参数不是最令人兴奋的事情,但是在一些时候它依然是非常必要的。不过,当你下次在检查命令行参数的时候,记得充分利用开放源代码的Java工具包,使用命令行接口(CLI)来帮助你完成这些工作。

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

如果你想使用CLI,首先,需要创建一个如下的Options类:

Options opt = new Options();

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

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

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

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

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

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

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

下面是这个程序完整的代码:

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

public class OptionsTip {
    public static void main(String args[]) {
        try {
            Options opt = new Options();

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

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

            if ( cl.hasOption('h') ) {
                HelpFormatter f = new HelpFormatter();
                f.printHelp("OptionsTip", opt);
            }
            else {
                System.out.println(cl.getOptionValue("u"));
                System.out.println(cl.getOptionValue("dsn"));
            }
        }
        catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

CLI可以把分析命令行参数的工作变得简单,让你从此不再为单调的解析工作烦恼。

本文作者: David Petersheim是Genscape公司的应用开发主管。他设计并开发了服务方应用(server-side applications)以便可以获得和处理实时能量数据.


上一篇:创建Excel格式数据
下一篇:加速代码文档的编制
标题:利用CLI处理命令行 作者:David Petersheim 来源:开发者在线
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐