CLI是Jakarta Commons中的一个子类。如果你仅仅只有一到两个参数需要处理,那么使用它有点多余,但是,如果你需要从命令行中捕获大多数应用程序的设置参数,那么使用CLI是恰到好处的。
在使用CLI之前需要创建一个Options对象,该对象相当于一个容器,另外还有Option对象,每个Option对象相对于命令行中的一个参数。
Options opts = new Options();
通过利用这个Options,你可以使用addOption()方法定义你的应用程序可接受的命令行参数,每次都为一个option调用一次这个方法,看下面例示:
opts.addOption("h", false, "Print help for this application");
opts.addOption("u", true, "The username to use");
opts.addOption("dsn", true, "The data source to use");当然你也可以单独创建Option对线,然后使用addOption()方法添加进去。如下:
Option op = new Option("h", false, "Print help for this application");一旦你定义了类的参数,创建一个CommandLineParser,并分析已传送到主方法中的组。
BasicParser parser = new BasicParser();
CommandLine cl = parser.parse(opts, args);等到所有的参数都被解析以后,你可以开始检查返回的命令行,这些命令行中,提供用户的参数和值已被语法分析程序详细检查过了。
if (cl.hasOption('h')) {
HelpFormatter hf = new HelpFormatter();
hf.printHelp("OptionsTip", opts);
} else {
System.out.println(cl.getOptionValue("u"));
System.out.println(cl.getOptionValue("dsn"));
}
就象你看到的那样,你可以使用HelpRormatter类为你的程序自动地产生使用信息。
下面看一下全部的代码:
package com.founder.common;
import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
public class OptionsTip {
public static void main(String[] args) {
try {
Options opts = new Options();
opts.addOption("h", false, "Print help for this application");
opts.addOption("u", true, "The username to use");
opts.addOption("dsn", true, "The data source to use");
BasicParser parser = new BasicParser();
CommandLine cl = parser.parse(opts, args);
if (cl.hasOption('h')) {
HelpFormatter hf = new HelpFormatter();
hf.printHelp("OptionsTip", opts);
} else {
System.out.println(cl.getOptionValue("u"));
System.out.println(cl.getOptionValue("dsn"));
}
} catch (ParseException pe) {
pe.printStackTrace();
}
}
}
注:使用此程序时候别忘了把commons-cli-1.0.jar加入到你的classpath中
运行结果:
E:\javaworkspace\collection\src>java com.founder.common.OptionsTip -h
usage: OptionsTip
-dsn The data source to use
-h Print help for this application
-u The username to use
E:\javaworkspace\collection\src>java com.founder.common.OptionsTip -u eric -dsn founder
eric
founder
分享到:
相关推荐
Apache Common CLI 1.2 是一个Java库,主要用于处理命令行接口(CLI)的参数解析。这个库使得在Java程序中处理用户输入的命令行参数变得简单和规范,避免了手动解析字符串的繁琐工作。Apache Common CLI 提供了一种...
通过阅读和分析源码,开发者可以了解如何利用Java来实现命令行文件下载功能,包括网络请求、文件处理和命令行参数解析等核心逻辑。 【标签】"系统开源" "系统开源"标签表明这个项目是开放源代码的,遵循开源许可证...
总的来说,Apache Commons CLI是一个强大的工具,对于那些需要处理命令行输入的Java开发者来说,它可以极大地提高代码的可读性和易用性。通过有效地利用它的功能,可以创建出易于理解和使用的命令行界面。
Apache Commons CLI是这个包的核心组件,它是Apache软件基金会的一个子项目,专门设计用来处理命令行参数和选项。Commons CLI库提供了API,使得开发人员能够轻松创建具有复杂选项和参数的命令行接口。它支持多种格式...
7. **CLI**: Apache Commons CLI 提供了命令行接口(CLI)解析工具,帮助处理命令行参数和选项。 8. **Configurations**: Apache Commons Configurations 提供了配置文件处理工具,支持 XML、INI、Java 属性等多种...
Apache Commons CLI库是Java开发中的一个实用工具,用于处理命令行接口(CLI)参数和选项。这个库在标题中提到的"commons-cli-1.1.zip"是一个压缩包,包含了Apache Commons CLI项目的1.1版本。这个库是Apache软件...
8. **Apache Commons CLI**:用于处理命令行接口(CLI)的解析,方便创建具有自定义选项和参数的命令行应用程序。 9. **Apache Commons Configuration**:提供了一种灵活的方式来管理和处理配置数据,可以是XML、...
之后,你可以利用dry-cli提供的DSL(领域特定语言)来定义命令及其选项。例如: ```ruby require 'dry/cli' module MyCLI extend Dry::CLI command :generate do |c| c.option '--name', :string, '指定生成的...
总结,Web_CLI_Shell项目是利用Web技术实现的命令行界面,它整合了前端和后端技术,通过Web接口提供命令行功能。项目使用了Eclipse作为开发环境,并采用Maven进行构建和依赖管理。其核心功能可能包括解析用户输入的...
1. **参数解析**:使用`java.util.Properties`或第三方库如Apache Commons CLI、picocli等解析命令行参数,使工具能根据用户提供的不同参数执行不同的操作。 2. **文件操作**:通过`java.io.File`类,可以实现文件...
2. **命令行接口(CLI)**:程序通过命令行接收用户输入,解析命令并执行相应的操作。这通常涉及到`java.lang.ProcessBuilder`或`Runtime.exec()`方法来执行操作系统级别的命令,以及`java.util.Scanner`来读取用户...
总结来说,“memfault-cli-0.1.6.tar.gz”是一个在Python生态系统中的云原生工具,它可能与Apache ZooKeeper集成,提供了对Memfault平台的命令行访问。这个工具对于那些在分布式环境中使用Python进行物联网设备管理...
Apache Felix 是一个基于 Java 的开源框架,它是 OSGi(Open Service Gateway Initiative)...通过这个 demo,开发者可以学习如何利用 Apache Felix 和 OSGi 的优势,构建可扩展、模块化、动态更新的 Java 应用程序。
Apache Karaf是一款轻量级的Java企业服务框架(Service-Oriented Container),它基于OSGi标准,用于构建、部署和管理模块化...通过掌握以上知识,你可以更好地理解和利用Apache Karaf构建、管理和部署模块化Java应用。
1. **模板引擎**:项目可能包含预定义的模板,允许开发者选择不同的模板来初始化一个新的CLI项目,模板可能涵盖了基础的命令处理、参数解析等功能。 2. **参数解析**:mkideal-cli可能会提供一套强大的参数解析机制...
结合这些信息,我们可以推测nb-cli可能是一个用于云原生环境的Python命令行工具,它可能集成或与Apache Zookeeper进行交互,帮助管理和操作分布式系统。这样的工具可能包括创建、配置、监控Zookeeper节点,或者提供...
- **队列机制(ActiveMQ)**:为了提高性能,James 3.0引入了队列机制,利用ActiveMQ实现邮件的异步处理,从而大大提升了处理大量邮件的能力。 - **配置文件优化**:3.0版本对配置文件进行了重新设计,将原有的大型...
命令行实用程序,也称为CLI(命令行接口)工具,是那些通过终端或命令提示符与用户交互的应用程序。`iponmap` 属于这一类,用户只需在命令行输入相应的命令和IP地址,即可得到位置信息。这种类型的应用程序通常简洁...
总结来说,Apache Hive 是一个面向大数据分析的重要工具,它简化了在 Hadoop 上处理大量数据的过程,使得非程序员也能通过 SQL 式的查询语言对数据进行分析,极大地提升了数据处理的效率和便利性。
Python3 CLI(命令行...同时,通过查看源代码,可以学习到如何利用Python的CLI框架来构建自己的命令行应用。这将是一个很好的学习资源,特别是对于那些想要提升Python编程技能,尤其是涉及到命令行工具开发的开发者。