Java命令行界面(第22部分):argparser

John Lloydargparser是本系列的第二十二篇有关基于Java的命令行参数解析的文章中介绍的库。 该库的主页除了提供单个源代码示例外,还提供了指向基于Javadoc的API文档 ,JAR文件,ZIP文件和TAR文件的链接。 本帖子中使用的示例与本系列的前二十一个帖子中使用的示例相似,并处理文件路径/名称和详细选项。 完整的代码清单可在GitHub上找到

“定义”阶段是在argparser中完成的,其中“ Holder”类的实例表示传递给ArgParser实例的addOption(String,Object)方法的预期选项。 下一个代码清单对此进行了演示。

argparser的“定义”阶段

final StringHolder file = new StringHolder();
final BooleanHolder verbose = new BooleanHolder();

final ArgParser parser = new ArgParser("java examples.dustin.commandline.argparser.Main");
parser.addOption ("-f,--file %s #Path and name of file", file);
parser.addOption ("-v,--verbose %v #Verbosity enabled?", verbose);

本系列中的许多有关从Java解析命令行参数的库都具有使用单个参数,单个方法或单个注释元素明确说明的选项特征。 如代码清单所示,argparser会将选项的属性拼写在argparser解析的“规范”字符串中。

“解析”阶段是在argparser中完成的,方法是将带有命令行参数的String[]传递给ArgParser类matchAllArgs(String [])方法。 下一条代码清单中显示了该单个语句。

用argparser进行“解析”阶段

parser.matchAllArgs(arguments);

“查询”阶段是在argparser中通过访问相应“持有人”类中称为“ ”的public字段来完成的。 这显示在下一个代码清单中。

argparser的“审讯”阶段

out.println("File path/name is: " + file.value);
out.println("Verbosity is: " + verbose.value);

argparser库还支持“帮助” /“使用”消息。 在下面的代码清单中对此进行了演示,如果未指定“文件”选项(如果其“值”为null ),则在其中编写用法。

argparser的“用法”

if (file.value == null)
{
   out.println("ERROR: File path/name was not specified! Use -f or --file to specify file path/name.\n"
      + parser.getHelpMessage());
}

接下来显示的屏幕快照演示了本文中涉及的示例。 第一张图片显示了未指定所需的“文件”选项时argparser提供的“用法”。 第二个图像显示了长和短选项名称的使用。

选择框架或库来帮助Java进行命令行解析时,需要考虑argparser的特征。

  • Arparser是开源的。 目前尚不清楚我是否根据任何特定的许可证进行了许可,但是JAR中包含一个COPYRIGHT文件,内容为“ Copyright John E. Lloyd,2004。保留所有权利。 授予使用,复制,修改和再分发的许可,但前提是保留此版权声明,并在适当的时候给予作者以荣誉。” 关于按“原样”分发软件的标准免责声明。
  • argparser.jar的大小约为129 KB,但包含.java源代码文件, .class编译文件和Javadoc HTML文件。
  • argparser.ArgParser类Javadoc非常出色,并且是我希望在Javadoc中定期看到基于Java的“主要”类的示例。 这是一个小型开源项目如何一次记录项目/库的很好的例子,因为还使用了类的Javadoc并从项目的主页链接到该Javadoc。 该类级别的Javadoc甚至包括SimpleExample源代码(也位于分布式JAR文件中),以提供有关如何使用类和库的示例。
  • 由于argparser是使用“ 主要版本:46 ”编译的,因此它应使用与JDK 1.2相同的Java版本运行!

argparser库很小,易于使用。 它可能最适合希望使用小型库完成基本命令行处理的用户,尤其适合那些仍然可能在旧版本的JDK中运行其基于Java的命令行处理代码的用户。 使该库与本系列中的许多其他库不同的几件事是其出色的基于Javadoc的API文档以及其针对选项特征的字符串规范方法。

其他参考

翻译自: https://www.javacodegeeks.com/2017/10/java-command-line-interfaces-part-22-argparser.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值