java登录界面命令
Giles Winstanley的JCLAP ( Java命令行参数解析器 )是基于Java的命令行处理库的系列文章中介绍的第18个库。 这篇文章的示例基于JCLAP 1.4 ,它需要Java 8 。 JCLAP主页上指出:“ JCLAP帮助Java开发人员为其应用程序创建易于使用的命令行界面。”
通过在CLAParser对象上调用“添加XXXXX选项”方法,可以使用JCLAP来完成“定义”阶段。 与本系列前面的文章中的例子一样,本文的示例定义了两个命令行选项,一个用于文件路径和名称,一个用于启用冗长性。 下一个代码清单演示了如何使用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 1.4需要Java 8 。
- JCLAP的作者已按照电子邮件的要求提供了潜在的支持和错误修复。
- JCLAP为国际化和本地化提供了一些支持。
JCLAP(Java命令行参数解析器)是一个具有商业友好许可证的小型库,近年来已更新为使用Java 8功能。 JCLAP的作者在该项目的主页上写道:“ JCLAP绝不是唯一的,并且许多类似的实用程序都是免费的和商业上可用的。” 作者进一步解释说:“现在存在许多类似的解决方案,似乎又有多余的解决方案,但是已经创建了JCLAP,将其公开可用似乎是有益的。”
其他参考
- JCLAP主页
- JCLAP 1.4 API文档 (Javadoc)
- Maven2Repo.com上的JCLAP 1.4
翻译自: https://www.javacodegeeks.com/2017/10/java-command-line-interfaces-part-18-jclap.html
java登录界面命令