企业建站原因,北京网站设计公司jq成都柚米科技15,站长工具seo优化,网站建设与规划getopt4j的页面将其描述为“一个根据GNU样式解析命令行参数的库。” 然后#xff0c; 页面介绍getopt4j #xff1a;“getopt4j库旨在以与glibc #xff08;GNU C运行时库#xff09;中的C getopt#xff08;#xff09;函数相同的方式解析命令行选项。 与原始产品相比 页面介绍getopt4j “getopt4j库旨在以与glibc GNU C运行时库中的C getopt函数相同的方式解析命令行选项。 与原始产品相比它试图以一种更简单更以Java为中心的方式做到这一点。” 这篇文章描述了如何使用getopt4j来解析命令行选项其方式与本系列前面27篇文章中介绍的库所用的方式相同。 的“定义”阶段在getopt4j通过实例来实现CLOptionDescriptor作为下一代码清单证实完整的源代码是可用在GitHub 。 getopt4j的“定义”阶段 final CLOptionDescriptor fileDescriptor new CLOptionDescriptor(file,CLOptionDescriptor.ARGUMENT_REQUIRED,f,Path and name of file.);
final CLOptionDescriptor verboseDescriptor new CLOptionDescriptor(verbose,CLOptionDescriptor.ARGUMENT_DISALLOWED,v,Is verbosity enabled?);
final CLOptionDescriptor[] optionsDefinitions new CLOptionDescriptor[]{fileDescriptor, verboseDescriptor}; 如上面的代码所示 CLOptionDescriptor的实例放置在一个数组中以呈现给getopt4j解析器。 通过实例化CLArgsParser类在getopt4j中实现“解析”阶段。 该类的构造函数在String[]数组和代表选项定义的CLOptionDescriptor实例数组中接受命令行参数。 这显示在下一个代码清单中。 使用getopt4j进行“解析”阶段 final CLArgsParser parser new CLArgsParser(arguments, optionsDefinitions); 通过在CLArgsParser实例上调用方法getArguments()来获取ListCLOption 可以完成getopt4j的“询问”阶段。 可以通过其getId()方法查询CLOption每个实例以按其“短”名称在此示例中为“ f”或“ v” getId()获取解析的参数。 通过其getId()方法找到合适的CLOption实例后该CLOption相同实例将通过调用CLOption的方法getArgument()方法来提供与该选项在命令行上关联的值。 下一个代码清单中演示了这种“询问”过程。 getopt4j的“审讯”阶段 String filePathAndName null;
boolean verbose false;
final ListCLOption options parser.getArguments();
for (final CLOption option : options)
{switch(option.getId()){case f :filePathAndName option.getArgument();break;case v :verbose true;break;}
}out.println(File path/name is filePathAndName and verbosity is verbose); 通过将CLOptionDescriptor实例的数组传递给静态方法CLUtil.describeOptions(CLOptionDescriptor[]) getopt4j库使请求使用/帮助信息的请求变得容易。 在下一个代码清单中将证明这一点当检测到未提供文件路径/名称时将调用几行代码。 getopt4j的“用法”语句 if (filePathAndName null)
{out.println(ERROR: The file path/name option is required but was not provided.\n\n CLUtil.describeOptions(optionsDefinitions));
} 接下来的两个屏幕快照中的第一个描述了自动生成的“ usage”语句当未指定所需的“ file”选项时代码可以调用该语句。 第二张图片描绘了正在使用的“文件”和“详细”长短名称的各种组合。 选择框架或库来帮助Java进行命令行分析时要考虑getopt4j的特征。 getopt4j是开源的并根据Apache许可2.0版发布。 getopt4j-1.2.jar JAR文件的大小约为16 KB。 MVN存储库 和Maven中央存储库 上可用的getopt4j-1.2.jar 2016年6月中的类是根据Java SE 6 “ 主要版本50 ”编译的。 该发行版的examples目录中提供了有关如何使用getopt4j的最佳示例。 getopt4j库提供Java风格的类似GNU C getopt的功能和API 。 其他参考 getopt4j GitHub getopt4j 1.2 Maven / MVN存储库 getopt4j示例 GNU C getopt的示例 翻译自: https://www.javacodegeeks.com/2017/10/java-command-line-interfaces-part-28-getopt4j.html