Java命令行界面(第18部分):JCLAP

Giles WinstanleyJCLAPJava命令行参数解析器 )是基于Java的命令行处理库的系列文章中介绍的第18个库。 这篇文章的示例基于需要Java 8的 JCLAP 1.4JCLAP主页上指出:“ JCLAP帮助Java开发人员为其应用程序创建易于使用的命令行界面。”

JCLAP通过在CLAParser对象上调用“添加XXXXX选项”方法来完成“定义”阶段。 与本系列前面的文章中的例子一样,该文章的示例定义了两个命令行选项,一个用于文件路径和名称,一个用于启用冗长性。 下一个代码清单演示了如何使用JCLAP定义这两个命令行选项(完整的代码清单可在GitHub上找到 )。

JCLAP的“定义”阶段

final CLAParser parser = new CLAParser();
final Option<String> fileNameOption
   = parser.addStringOption("f", "file", "Path/name of the file.", 1, 1);
final Option<Boolean> verbosityOption
   = parser.addBooleanOption("v", "verbose", "Verbosity enabled?");

刚刚显示的代码清单证明JCLAP支持长参数名和短参数名,提供描述的能力以及指定每个参数的最小和最大出现次数的能力。

“解析”阶段是通过JCLAP调用CLAParser.parse(String [])方法实现的,尽管该方法确实抛出了检查到的异常OptionException

JCLAP的“解析”阶段

parser.parse(arguments);

在JCLAP中以不同的方式实现“询问”阶段,但是我在这里使用的方法是使用重载的CLAParser.getOptionValue()方法之一。

JCLAP的“审讯”阶段

out.println("File path/name is " + parser.getOptionValue(fileNameOption));
out.println("Verbosity is " + (parser.getOptionValue(verbosityOption) != null));

JCLAP还支持自动创建使用情况声明。 下一个代码清单演示了如何在与捕获选中的OptionException相关联的块中调用重载的CLAParser.printUsage()方法之一。

使用JCLAP的自动使用情况声明

catch (OptionException optionException)
{
   out.println("Exception: " + optionException);
   parser.printUsage(out, true);
}

接下来的两个屏幕快照描述了实际的代码示例。 当没有提供任何参数时,第一个屏幕快照显示JCLAP生成的用法语句。 第二张图显示了“幸福的道路”,为两个参数应用了长标记名和短标记名。

选择用于帮助Java进行命令行解析的框架或库时,需要考虑snaq.net JCLAP的特征。

  • JCLAP是开放源代码,具有在项目页面上描述的“ BSD样式许可证”。
  • jclap-1.4.jar JAR文件的大小约为46 KB,没有第三方库依赖项。
  • 不同版本的JCLAP是为不同版本的Java设计的。
  • JCLAP的作者已按照电子邮件的要求提供了潜在的支持和错误修复。
  • JCLAP为国际化和本地化提供了一些支持。

JCLAP(Java命令行参数解析器)是一个具有商业友好许可证的小型库,近年来已对其进行了更新,以使用Java 8功能。 JCLAP的作者在该项目的主页上写道:“ JCLAP绝不是唯一的,并且许多类似的实用程序都是免费的和商业上可用的。” 作者进一步解释说:“现在存在许多类似的解决方案,似乎又有多余的解决方案,但是已经创建了JCLAP,将其公开可用似乎是有益的。”

其他参考

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值