Apache commons CLI介绍和简单应用

p34f 10年前

CLI 即Command Line Interface,也就是"命令行接口",它为Java 程序访问和解析命令行参数提供了一种统一的接口。

apache Commons CLI为用户提供了一个解释命令行的API.

它在解释命令行时主要有三个状态,即:定义、解释和询问交互。

通过使用commons cli则可以很容易的访问参数,而不必去循环String[] args。

这个命令需要模拟命令行输入,可以将应用做成jar文件后输入命令行执行,也可以将命令行包装成参数执行。

在eclipse下运行则需要通过Run as /runConfigurations/Arguments来进行命令行参数配置 

在MyEclipse中运行此类,在工程树中右键单击该类选择Run As --> Run Configurations ... --> 选择第二个面板[(x)=Arguments] --> 在Program arguments

输入参数: -p 范芳铭 -t time –h

用apacheCommons CLI实现的一个简单的示例代码如下:

packagetest.ffm83.commons.CLI;         importjava.util.Date;         importorg.apache.commons.cli.CommandLine;    importorg.apache.commons.cli.CommandLineParser;    importorg.apache.commons.cli.Options;    importorg.apache.commons.cli.PosixParser;    /**     * 通过commons CLI进行简单的命令行输入     * @author 范芳铭     */    publicclass EasyCLIUsage {        public static void main(String[] args)throws Exception {            Options options = new Options();             //true 需要带参数,false 不用参数            options.addOption("t", true,"display current time");//参数不可用                options.addOption("p", true,"person owner");//参数可用                options.addOption("h", false,"help");//参数可用                       CommandLineParser parser = newPosixParser();              CommandLine cmd = parser.parse(options,args);                       if (cmd.hasOption("p")){                    String code =cmd.getOptionValue("p");                    System.out.println("输入参数 p:" + code);                }                       if (cmd.hasOption("t")){                    String code =cmd.getOptionValue("t");                    System.out.println("输入参数t:" + code + "," +new Date());                }                        if (cmd.hasOption("h")){                      System.out.println("输入参数h:帮助:[-t][-c][-h]");                }         }    }


运行后结果为:

输入参数 p:范芳铭

输入参数t:time,Tue Dec 30 09:23:38 CST 2014

输入参数h:帮助:[-t][-c][-h]