`
lizhensan
  • 浏览: 378573 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

apache cli 例子

    博客分类:
  • java
 
阅读更多
<dependency>
			<groupId>commons-cli</groupId>
			<artifactId>commons-cli</artifactId>
			<version>1.2</version>
		</dependency>

 

 

package cli;

import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.junit.Test;

public class ApacheCliTest {

	@Test
	public void testException2() {
		parser("".split("\\s+"));
	}
	
	@Test
	public void testException() {
		parser("-a1 aa -a2".split("\\s+"));
	}
	
	@Test
	public void testOption() {
		parser("-a1 aa -a2 1 2 3".split("\\s+"));
	}

	@Test
	public void testHelp() {
		parser(new String[] { "-h" });
	}

	public static void parser(String[] args) {
		Options opts = new Options();
		opts.addOption("h", "help", false, "帮助信息");
		opts.addOption("a1", "args1", true, "普通参数");
		Option op2 = OptionBuilder.withArgName("args-list").withLongOpt("args2").hasArgs().withDescription("参数列表")
				.create("a2");
		opts.addOption(op2);

		BasicParser parser = new BasicParser();
		CommandLine cl;
		try {
			cl = parser.parse(opts, args);
			if (cl.getOptions().length > 0) {
				if (cl.hasOption('h')) {
					HelpFormatter hf = new HelpFormatter();
					hf.printHelp("Options", opts);
				} else {
					String a1 = cl.getOptionValue("a1");
					System.out.println("a1:" + a1);

					String[] a2 = cl.getOptionValues("a2");
					for (String s : a2) {
						System.out.println("a2:" + s);
					}
				}
			} else {
				System.err.println("没有参数");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

分享到:
评论

相关推荐

    Java命令行选项解析之Commons-CLI & Args4J & JCommander

    Java提供了多种库来帮助处理这些参数,如Apache Commons CLI、Args4J和JCommander。这些库简化了命令行选项的解析,使得在Java应用程序中创建复杂的命令行接口变得更为便捷。 Apache Commons CLI 是一个广泛使用的...

    dry-cli:Ruby的通用命令行界面(CLI)框架

    通常,开源项目会采用MIT、Apache或GPL等许可,允许开发者自由地使用、修改和分发代码,但具体条款应以实际文件为准。 ### 使用方法 使用dry-cli首先需要将其作为依赖项添加到你的`Gemfile`中,然后通过`bundle ...

    Apache Commons工具集简介.docx

    // 举一个简单的例子 Collection coll = new ArrayList(); coll.add("a"); coll.add("b"); coll.add("c"); // 使用 CollectionUtils 来操作集合 CollectionUtils.union(coll, new String[] {"d", "e"}); ``` Apache...

    简单的storm例子.rar

    为了运行这个storm例子,用户需要先解压文件,然后使用Maven或者类似的构建工具编译源代码,最后使用Storm CLI或本地模式启动拓扑。在运行过程中,可以观察到数据如何在Spouts和Bolts之间流动,以及如何进行实时处理...

    commons-cli-annotations:通过注释解析命令行选项

    许可Apache 2.0 蚂蚁的例子 这里将使用Java应用程序Ant来说明如何创建所需的选项。 以下是使用选项注释对选项的定义: import com.qwazr.cli.Option ; import java.util.Map ; import java.util.Set ; public ...

    commons-cli-annotations:commons-cli-annotations 添加了对 commons-cli 库的注释支持

    #commons-cli-annotations# Apache 是一个标准库,用于解析 Java 中的命令行参数。 尽管它的功能足够了,但该库不提供对注释的支持。 这个对 commons-cli 库的扩展使您能够简单地注释 POJO 类的属性,以使用从...

    基于Vue-cli和Servlet的前后端分离的电商系统.zip

    本项目“基于Vue-cli和Servlet的前后端分离的电商系统”就是一个典型的例子,它结合了前端的Vue.js框架和后端的Servlet技术来实现一个完整的电子商务平台。下面将详细探讨相关知识点。 1. **Vue-cli**: Vue-cli是...

    android上phonegap例子

    - Apache Cordova(PhoneGap的基础):需要通过npm(Node Package Manager)进行安装。 - PhoneGap CLI:同样通过npm安装,用于创建、构建和部署PhoneGap应用。 2. **创建项目**: 使用PhoneGap CLI,你可以通过...

    phonegap完整例子!

    - PhoneGap基于Apache Cordova,是一个让开发者能够使用Web技术(HTML、CSS、JavaScript)开发原生移动应用的框架。 - 它的核心功能是提供了一个API接口,使JavaScript能够调用设备的各种原生功能,如摄像头、GPS...

    phonegap例子

    PhoneGap的核心是Apache Cordova,它是一个开源的移动设备API库,使得开发者可以使用Web技术与设备的硬件功能进行交互,如摄像头、GPS、加速度计等。PhoneGap通过提供一套JavaScript API接口,让开发者能够调用这些...

    phonegap各种组件demo例子

    7. **调试与测试**:PhoneGap提供了命令行工具(CLI)进行项目的初始化、安装依赖、构建和部署。开发者可以通过浏览器的开发者工具进行前端调试,也可以利用官方提供的PhoneGap Developer App在真机上实时预览和调试...

    PhoneGap例子

    PhoneGap的核心是Apache Cordova,它是一个开源项目,为开发者提供了与设备硬件交互的能力,如访问摄像头、GPS定位、加速度计等。在"PhoneGap例子"这个主题中,我们将深入探讨如何利用PhoneGap和Cordova进行移动应用...

    source-map-concat-cli:通过CLI将文件与源映射连接

    `source-map-concat-cli`遵循特定的开源许可协议,通常这类工具会使用MIT、Apache 2.0或GPL等许可。在这个例子中,项目使用的是MIT许可证,这是一种非常宽松的开源许可,允许用户自由地使用、修改和分发代码,只要...

    phoneGap实现android平台登录例子

    PhoneGap是基于Apache Cordova的,它提供了一个API接口,使得JavaScript可以调用设备的原生功能,如摄像头、GPS、加速度计等。PhoneGap的核心理念是将Web技术与移动设备的功能相结合,从而减少为不同操作系统编写...

    commons包的用法

    import org.apache.commons.cli.*; // 定义选项 Options options = new Options(); options.addOption("t", false, "显示当前时间"); options.addOption("c", true, "国家代码"); // 创建解析器 CommandLineParser...

    ActiveMQ例子

    ActiveMQ是Apache软件基金会的一个开源项目,它是一个消息中间件,用于在分布式系统中传递消息。消息中间件的主要作用是解耦应用,使得发送和接收消息的应用不必同时在线,从而提高系统的可扩展性和容错性。ActiveMQ...

    postfixadmin-2.93.tar.gz

    sudo apt-get install -y php php-mysqli php-cli php-gd php-curl php-intl php-xml apache2 mariadb-server libapache2-mod-php ``` 对于CentOS/RHEL系统,使用: ```bash sudo yum update sudo yum install -y ...

    integrate Barcode4J in a Java application

    而`commons-cli-1.0.jar`是Apache Commons CLI库,用于解析命令行选项,虽然在直接使用Barcode4J时可能不是必需的,但在某些特定场景下,如命令行工具,可能会用到。 集成Barcode4J的第一步是将这些依赖的JAR文件...

    Ubuntu下开启php调试模式报错信息解决办法

    在这个例子中,版本号可能是7.0,所以文件路径为`/etc/php/7.0/cli/php.ini`。 使用`sudo vim /etc/php/7.0/cli/php.ini`命令打开这个文件,然后找到`display_errors`配置项。它的默认值可能是`Off`,将其改为`On`...

    remember-words-cli:记忆单词的程序

    当然,这个项目并没有展示我所有的知识,现在它的任务只是展示我的代码的一个例子。 将来,以及空闲时间的可用性,在 JavaFX 中重写此内容或提高 Web 服务。编译和运行Apache Maven用作收集器,因此,在为自己克隆...

Global site tag (gtag.js) - Google Analytics