commons-cli使用介绍
2016-04-13 16:57
543 查看
commons-cli是Apache开源组织提供的用于解析命令行参数的包,命令行的处理共分为三个阶段:定义阶段、解析阶段和审讯阶段。
在定义阶段,我们需要使用
Options类来定义我们需要使用的命令。
方法摘要:
返回值 | 方法名 | 说明 |
---|---|---|
Options | addOption(Option opt) | 添加一个选项实例 |
Options | addOption(String opt, boolean hasArg, String description) | 添加一个只包含短名称的选项 |
Options | addOption(String opt, String description) | 添加一个只包含短名称的选项 |
Options | addOption(String opt, String longOpt, boolean hasArg, String description) | 添加一个包含短名称和长名称的选项 |
Options | addOptionGroup(OptionGroup group) | 添加一个选项组 |
List<String> | getMatchingOptions(String opt) | 获得匹配选项的长名称集合 |
Option | getOption(String opt) | 通过长名称或短名称获得选项 |
OptionGroup | getOptionGroup(Option opt) | 获得选项所在的选项组 |
Collection | getOptions() | 获得一个只读的选项集合 |
List | getRequiredOptions() | 获得必须的选项集合 |
boolean | hasLongOption(String opt) | 判断是否存在选项 |
boolean | hasOption(String opt) | 判断是否存在选项 |
boolean | hasShortOption(String opt) | 判断是否存在选项 |
DefaultParser来解析命令行参数。
DefaultParser实现了
CommandLineParser接口,解析命令行参数完成后会返回
CommandLine对象,在审讯阶段,我们就需要
CommandLine对象来完成我们实际的工作。
部分方法摘要:
返回值 | 方法名 | 说明 |
---|---|---|
List | getArgList() | 获得参数集合 |
String[] | getArgs() | 获得参数数组 |
Option[] | getOptions() | 获得选项数组 |
String | getOptionValue(char opt) | 获得选项值 |
String | getOptionValue(char opt, String defaultValue) | 获得选项值 |
String | getOptionValue(String opt) | 获得选项值 |
String | getOptionValue(String opt, String defaultValue) | 获得选项值 |
boolean | hasOption(char opt) | 判断是否含有选项 |
boolean | hasOption(String opt) | 判断是否含有选项 |
示例代码:
package com.gujin.cli; import java.io.File; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.junit.Test; public class CLITest { @Test public void test() throws ParseException { // 模拟命令行参数 String[] args = { "-dir", ".", "-t" }; testParser(args); } public void testParser(String[] args) throws ParseException { Options options = new Options(); options.addOption("dir", true, "root folder path."); options.addOption("t", false, "file last modify time."); CommandLineParser parser = new DefaultParser(); CommandLine cmd = parser.parse(options, args); if (cmd.hasOption("dir")) { File dir = new File(cmd.getOptionValue("dir")); if (dir.exists()) { if (cmd.hasOption("t")) { File[] files = dir.listFiles(); if (files != null) { for (File file : files) { System.out.println(file.getName() + " " + file.lastModified()); } } } else { String[] files = dir.list(); if (files != null) { for (String file : files) { System.out.println(file); } } } } else { System.out.println(dir.getAbsolutePath() + " not exists."); } } else { System.out.println("not has dir option."); } } }
运行结果:
.classpath 1460357174453 .project 1459855420531 .settings 1459855435609 bin 1460357176515 file 1460184797968 lib 1460357165859 md 1460511999796 src 1460094266062
相关文章推荐
- Apache Isis 1.4.0 发布,领域驱动开发框架
- RH436 Day3 课后总结
- Linux快速构建apache web服务器
- Awstats处理多apache日志
- 安装perl模块小窍门
- Apache静态编译与动态编译的区别
- PHP+Apache在Windows 9x下的安装和配置
- Apache服务器配置全攻略
- Apache Web让JSP“动”起来
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- apache 环境下 php 的配置注意事项
- 在RedHat下安装apache jserv 1.1.2方法
- windows8.1下Apache+Php+MySQL配置步骤
- PHP 命令行参数详解及应用
- windows中PHP5.2.14以及apache2.2.16安装配置方法第1/2页
- 在Windows XP下安装Apache+MySQL+PHP环境
- 使用nodejs开发cli项目实例
- 解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
- apache rewrite防盗链三例