Java命令行界面(第23部分):Rop

Rop库在其主页上被描述为“用Java编写的轻量级命令行选项解析器”。 Rop的“简介”还指出:“ Rop的设计目的是最小化同时方便,并涵盖了大多数常见的命令行解析用例。” 这篇文章是本系列中第23篇有关解析Java命令行参数的文章 ,重点是Rop。

与本系列中的该系列的22个帖子类似,该帖子使用一些示例来实现两个命令行选项,一个用于文件路径和名称,一个用于详细级别。 列出示例的完整代码可在GitHub上找到

在Rop中,“定义”阶段是通过注释@Command@Option (它们都嵌套在com.github.ryenus.rop.OptionParser类中)完成的。 这显示在下一个代码清单中。

Rop的“定义”阶段

/**
 * Demonstrates use of Rop for processing command line
 * parameters in Java.
 */
@Command(name="RopDemo", descriptions="Demonstrates ROP for command line processing.")
public class Main
{
   @Option(opt={"-f", "--file"}, description="Path and name of file.")
   private String file;

   @Option(opt={"-v", "--verbose"}, description="Indicates whether verbosity is enabled or not.")
   private boolean verbose;

在Rop中,“解析”阶段是通过实例化OptionParser一个实例并将其字段在“定义”阶段中进行注释的类的定义传递给Rop来完成的。 这显示在下一个代码清单中。

Rop的“解析”阶段

final OptionParser parser = new OptionParser(Main.class);
parser.parse(arguments);

OptionParser.parse(Class)方法在构造时提供给解析器的实例上隐式调用(通过反射)名称为“ run”的方法。 我已经实现了这种“运行”方法,如下面的代码清单所示。

带拉绳的“审讯”阶段(包括“运行”方法)

/**
 * Method called implicitly by Rop parser.
 *
 * @param parser Instance of {@code OptionParser} whose
 *    "parse" method led to my implicit invocation.
 */
private void run(final OptionParser parser)
{
   out.println("File path/name is " + file + " and verbosity is " + verbose);
}

上述代码清单的“运行”的方法显示“询问”由访问完成@Option -annotated由被填充的字段OptionParser.parse(String[])呼叫。

随后的三个屏幕快照展示了Rop完成的这些“定义”,“解析”和“询问”阶段。 第一个图像指示未指定所需的“文件”选项时显示的错误消息。 第二张图片描绘了示例的正常行为,该示例处理“文件”和“详细”选项的短名称和长名称的组合。 第三幅图描绘了Rop的内置“帮助”支持,该支持在指定--help选项时显示。

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

  • Rop是具有MIT许可证的开源软件。
  • 正如所宣传的,绳子很轻; rop-1.1.1.jar的大小约为18 KB,不需要第三方依赖性。
  • rop-1.1.1.jar的类具有“主要版本:51”,这意味着如果使用这些已编译的类,则需要Java SE 7

Rop是基于Java的轻量级库,用于处理易于学习和使用的命令行选项。

其他参考

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值