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]