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]