`

Java命令行解析工具Apache CLI

    博客分类:
  • Java
阅读更多

出处:http://blog.csdn.net/conquer0715/article/details/42805947

 

Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能。

Apache Commons CLI 支持多种输入参数格式,主要支持的格式有以下几种:

  1. POSIX(Portable Operating System Interface of Unix)中的参数形式,例如 tar -zxvf foo.tar.gz
  2. GNU 中的长参数形式,例如 du --human-readable --max-depth=1
  3. Java 命令中的参数形式,例如 java -Djava.net.useSystemProxies=true Foo
  4. 短杠参数带参数值的参数形式,例如 gcc -O2 foo.c
  5. 长杠参数不带参数值的形式,例如 ant – projecthelp

随着科学计算可视化及多媒体技术的飞速发展,人机交互技术不断更新,但是最传统的命令行模式依然被广泛的应用于多个领域,因为命令行界面要较图形用户界面节约更多的计算机系统资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。同时,命令行模式也更加有利于客户进行二次开发,方便应用程序的整合。Apache Commons CLI 提供了很多实用的工具和类实现,进一步方便了我们对命令行工具的开发。

 

[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. import org.apache.commons.cli.*;  
  2.   
  3. public class Test {  
  4.   
  5.     public static void main(String[] args) throws ParseException {  
  6.         // for test  
  7.         String[] Args0 = {"-h"};  
  8.         String[] Args1 = {"-i""192.168.1.1""-p""8443""-t""https"};  
  9.   
  10.         Option help = new Option("h""the command help");  
  11.         Option user = OptionBuilder.withArgName("type").hasArg().withDescription("target the search type").create("t");  
  12.   
  13.         // 此处定义参数类似于 java 命令中的 -D<name>=<value>  
  14.         Option property = OptionBuilder.withArgName("property=value").hasArgs(2).withValueSeparator().withDescription  
  15.                 ("search the objects which have the target property and value").create("D");  
  16.         Options opts = new Options();  
  17.         opts.addOption(help);  
  18.         opts.addOption(user);  
  19.         opts.addOption(property);  
  20.   
  21.         // do test  
  22. //        simpleTest(args);  
  23.         simpleTest(Args1);  
  24.     }  
  25.   
  26.     /////////  
  27.   
  28.     public static void simpleTest(String[] args) {  
  29.         Options opts = new Options();  
  30.         opts.addOption("h"false"HELP_DESCRIPTION");  
  31.         opts.addOption("i"true"HELP_IPADDRESS");  
  32.         opts.addOption("p"true"HELP_PORT");  
  33.         opts.addOption("t"true"HELP_PROTOCOL");  
  34.         CommandLineParser parser = new BasicParser();  
  35. //        CommandLineParser parser = new GnuParser ();  
  36. //        CommandLineParser parser = new PosixParser();  
  37.         CommandLine cl;  
  38.         try {  
  39.             cl = parser.parse(opts, args);  
  40.             if (cl.getOptions().length > 0) {  
  41.                 if (cl.hasOption('h')) {  
  42.                     HelpFormatter hf = new HelpFormatter();  
  43.                     hf.printHelp("May Options", opts);  
  44.                 } else {  
  45.                     String ip = cl.getOptionValue("i");  
  46.                     String port = cl.getOptionValue("p");  
  47.                     String protocol = cl.getOptionValue("t");  
  48.                     System.out.println(ip);  
  49.                     System.out.println(port);  
  50.                     System.out.println(protocol);  
  51.                 }  
  52.             } else {  
  53.                 System.err.println("ERROR_NOARGS");  
  54.             }  
  55.         } catch (ParseException e) {  
  56.             e.printStackTrace();  
  57.         }  
  58.     }  
  59. }  

 

 

分享到:
评论

相关推荐

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

    Apache Commons CLI 是一个广泛使用的库,它提供了处理命令行参数的工具。这个库支持短选项(如 `-h`)、长选项(如 `--help`)、带有或不带有值的选项,以及对选项的组合和互斥处理。通过定义Option对象,你可以...

    基于Java语言实现的命令行工具-everything.zip

    1. **参数解析**:使用`java.util.Properties`或第三方库如Apache Commons CLI、picocli等解析命令行参数,使工具能根据用户提供的不同参数执行不同的操作。 2. **文件操作**:通过`java.io.File`类,可以实现文件...

    java命令行文件管理器

    这些命令行参数的解析,可能是通过Java的`java.util.Scanner`类或者`org.apache.commons.cli`库实现的。 【标签】"java小实验"表明这是一个学习或实践Java的项目,可能适合初学者用来加深对Java文件操作的理解。这...

    使用Java编写基于命令行的程序

    - 对于复杂的命令行参数,可以使用第三方库,如Apache Commons CLI或JCommander。这些库可以帮助解析和验证命令行参数,提供更友好的用户界面。 - 如果只是简单的参数处理,可以手动解析`args`数组,例如检查参数...

    java编写的命令行文件/文件夹管理程序

    Java编写的命令行文件/文件夹管理程序是一个实用工具,它允许用户通过命令行界面执行常见的文件操作。这种程序在开发、系统管理或者需要高效批量处理文件的场景中非常常见。下面将详细介绍这个程序可能涉及的主要...

    argparse4j,python著名的argparse命令行参数解析器的java端口。.zip

    `argparse4j`是Java平台上对Python的`argparse`命令行参数解析库的一个移植,旨在提供类似的易用性和功能。在Python中,`argparse`是标准库的一部分,用于构建复杂命令行接口,而在Java世界里,`argparse4j`提供了...

    apache commos cli 1.4 源码

    Apache Commons CLI 是一个Java库,专门用于处理命令行接口(CLI)选项和参数。这个库为Java应用程序提供了灵活且易于使用的API,使得开发者能够轻松地创建具有命令行参数的程序。在Apache Commons CLI 1.4版本的...

    java_easy_cli:Apache Commons CLI 的简单包装器

    Java Easy CLI 是一个基于 Apache Commons CLI 的轻量级命令行接口工具,它的设计目标是简化命令行参数的解析和管理。Apache Commons CLI 是一个广泛使用的 Java 库,它提供了处理命令行选项、参数和帮助信息的功能...

    MainArgsHandler:Java的命令行参数处理器

    实现`MainArgsHandler`可以使用多种方式,比如自定义解析逻辑,或者使用现成的命令行解析库,如Apache Commons CLI、JCommander或Picocli。这些库可以帮助简化参数处理,提供更高级的功能,如自动帮助生成、类型转换...

    Apache Commons工具集

    7. **CLI**: Commons CLI 提供了命令行接口解析的工具,帮助开发者处理命令行参数。 8. **Configurations**: 这个模块允许从不同的配置源(如XML、Properties文件)读取配置信息,方便程序配置的管理。 9. **Email...

    commons-cli-1.0.jar

    它简化了CLI的定义、解析和交互过程,使得开发者能够专注于实现核心业务逻辑,而不是处理命令行解析的细节。"commons-cli-1.0.jar"文件包含了所有必要的类和方法,可以直接引入到Java项目中使用,以提升命令行驱动...

    apache.commons全套jar包下载

    2. Apache Commons CLI: 命令行接口(CLI)工具包简化了命令行参数解析。它可以自动处理短选项、长选项、选项组合以及帮助信息的生成,让编写命令行程序变得更加简单。 3. Apache Commons Codec: 这个库提供了各种...

    commons-cli

    Apache Commons CLI库是一个Java工具,专门设计用于简化命令行接口(CLI)的处理。这个库为开发者提供了一种结构化的方式来定义、解析和处理应用程序的命令行参数,从而减轻了在命令行接口开发中的繁琐工作。以下是...

    print-feed:java命令行feedrss应用

    这通常涉及到`java.util.ArrayList`和`java.util.Properties`等类,以及命令行解析库如`Apache Commons CLI`或`picocli`。 6. **线程与异步处理**:如果应用需要同时处理多个RSS源,可能涉及多线程或异步处理,使用...

    commons-cli-1.5.0.jar

    Apache Commons CLI是一个Java库,专为处理命令行接口(CLI)参数解析而设计。在标题“commons-cli-1.5.0.jar”中,我们看到的是该库的一个特定版本——1.5.0的jar包。这个文件是Java应用程序可执行的归档文件,包含...

    commons-cli-1.1.zip

    2. **命令行解析**:通过Parser类,CLI库能够解析命令行输入,将选项、参数和命令分离出来。它支持不同的解析模式,比如Posix或GNU风格的解析。 3. **帮助生成**:CLI库可以自动生成基于用户定义选项的帮助信息,...

    commons-cli-1.2-bin.zip

    这个工具包的主要目标是简化Java程序中处理命令行参数的过程,为开发者提供了一个灵活且易于使用的API来解析命令行输入,使得用户能够更加方便地与Java应用程序进行交互。 在Java程序中,我们经常需要从命令行接收...

    java源码:Java远程终端工具 JTA.rar

    3. **命令行解析**:可能包含一个命令解析器,如使用Apache Commons CLI库,来解析用户输入的命令并执行相应的操作。 4. **多线程**:为了实现并发处理,代码可能涉及多线程技术,比如处理多个并发连接或者异步任务...

    org.apache.commons

    7. **CLI**: Apache Commons CLI 提供了命令行接口(CLI)解析工具,帮助处理命令行参数和选项。 8. **Configurations**: Apache Commons Configurations 提供了配置文件处理工具,支持 XML、INI、Java 属性等多种...

Global site tag (gtag.js) - Google Analytics