jw摄像

JavaWorld的文章“ 用Java处理命令行参数”: Matthias Laux博士关闭的案例介绍了一个简单的基于Java的库,用于处理命令行参数 ,我在本文中将其称为jw-options 。 被引用的文章提供了有关为何在构造Options类时做出某些设计决策的背景信息。 本文的“结论”描述了使用附带的类和库的优点:“本文介绍了一个Java类,该类允许方便地处理Java程序的命令行选项。 该结构足够灵活,甚至可以处理复杂的情况,同时提供了API,可以用有限的编码工作来定义可接受的命令行语法。

JavaWorld文章介绍的“库”包含三个Java类: OptionsOptionDataOptionSet 。 下面的屏幕快照演示了这一点,该屏幕快照显示了options.jar的内容。

带有“ jw-options”的“定义”阶段是通过其OptionsOptionSet类实现的。 下一个代码清单中对此进行了演示(完整的代码清单可在GitHub上找到 ,此处的示例与本系列以前的文章中使用的示例相似)。

带有jw-options的“ Definition”阶段

final Options options = new Options(arguments, Multiplicity.ZERO_OR_ONE);
final OptionSet defaultOptions = options.getSet();
defaultOptions.addOption("f", false, Separator.BLANK, Multiplicity.ONCE);
defaultOptions.addOption("v", Multiplicity.ZERO_OR_ONE);

刚刚显示的代码清单演示了如何使用几个OptionSet的重载addOption方法。 为了设置文件路径和名称( -f )选项,将调用四参数版本,其中包含标志的单字母(f),标志与其参数之间的分隔符(空格)以及应当预期标志的次数(恰好发生一次)。 冗长性的第二个参数(-v)通过调用addOption的两个参数版本来addOption ,该版本指定标志的字符(v)及其预期出现的次数(零出现或单出现)。

通过调用Optionscheck方法,可以在“ jw-options”中实现“解析”阶段。 顾名思义,此方法也可用于检查参数的准确性。 下一个代码清单中对此进行了演示。

使用jw-options的“解析”阶段

if (!options.check(false, false))
{out.println("ERROR: " + options.getCheckErrors());System.exit(-1);
}

在刚刚显示的“解析”示例中,使用了Options类的方法getCheckErrors()来访问解析参数中的错误,这些错误导致Options.check方法返回false

下一个代码清单中演示了带有“ jw-options”的“询问”阶段。

jw-options的“审讯”阶段

out.println("File path/name is " + defaultOptions.getOption("f").getResultValue(0));
out.println("Verbosity is set to " + defaultOptions.isSet("v"));

“询问”示例演示了如何使用OptionSetgetOption方法访问表示“ -f”选项的选项,然后调用其getResultValue(0)方法访问与该“ -f”关联的第一个(也是在这种情况下)值”标志。 该示例中的第二行仅通过使用OptionSet的方法isSet查询是否已指定“ -v”标志(并且不担心或期望与该标志关联的值)。

接下来显示一个屏幕快照,以演示到目前为止显示的使用“ jw-options”的代码。 该图显示了未提供预期命令行参数时报告的消息,并以两个示例按预期使用命令行标志结尾。

选择框架或库来帮助Java进行命令行分析时,要考虑“ jw-options”的特征。

  • “ jw-options”“库”是开放源代码,因为它的源代码已在JavaWorld文章“ 在Java中处理命令行参数:案例关闭且源代码包含在JAR中可供下载的方式 ”中进行了全面介绍和讨论。 作为jw-0816-command.zip ZIP文件。” 但是,该“图书馆”的许可证并不明显。
  • “ jw-options”库很小: options.jar文件的大小约为13 KB。
  • 据我所知,无法用“ jw-options”用双连字符指定“长”标志名称。
  • 在“ jw-options” jar中的类上运行的javap命令显示“ main version:49 ”,这意味着它是针对J2SE 5编译的,并且可以与运行于J2SE 5的 Java上的应用程序一起使用(我注意到在Java中使用StringBuffer代码在StringBuilder也能正常工作)。

这篇文章中讨论的“ jw-options”“库”最有可能引起那些需要将命令行处理库与旧版Java一起使用或对学术有兴趣的人。 因为此“库”在相关的JavaWorld文章中进行了详细描述,并且因为它是开源的,所以可以细读代码并查看该文章,以了解它如何完成命令行解析以及为什么使用这种方法。 鉴于“ jw-options”的许可证不明显,并且鉴于这是一个相对“老”的库,似乎没有接收到更新,因此大多数Java开发人员可能更喜欢本文档中介绍的某些替代库。在许多情况下,“ jw-options”上的序列。

其他参考

  • JavaWorld文章: 在Java中处理命令行参数:案例关闭
  • 下载源代码和库Zip文件

翻译自: https://www.javacodegeeks.com/2017/10/java-command-line-interfaces-part-17-jw-options.html

jw摄像

jw摄像_Java命令行界面(第17部分):jw-options相关推荐

  1. java登录界面命令_Java命令行界面(第30部分):观察

    java登录界面命令 这个有关Java命令行参数解析的系列文章由四个月来发表的29篇帖子组成,涵盖了28个不同的开放源代码库,可用于解析Java命令行参数. 这篇文章收集了可以从本系列的前29篇文章中 ...

  2. java登录界面命令_Java命令行界面(第18部分):JCLAP

    java登录界面命令 Giles Winstanley的JCLAP ( Java命令行参数解析器 )是基于Java的命令行处理库的系列文章中介绍的第18个库. 这篇文章的示例基于JCLAP 1.4 , ...

  3. java登录界面命令_Java命令行界面(第10部分):picocli

    java登录界面命令 picocli主页面将picocli描述为"强大的微小命令行界面"," picocli"是一个单文件Java框架,用于解析命令行参数并生成 ...

  4. java登录界面命令_Java命令行界面(第7部分):JCommander

    java登录界面命令 这是我系列的第七篇文章,简要介绍了用于处理Java命令行参数的各种库. 这篇文章回到了基于注释的库的覆盖范围,该库似乎是在Java中可用于处理命令行参数的众多可用库中知名度最高, ...

  5. java登录界面命令_Java命令行界面(第26部分):CmdOption

    java登录界面命令 由于Tweet,我了解了本系列中第26个基于Java的功能强大的库,该库用于解析命令行参数 . CmdOption在其GitHub主页上被描述为"一个通过注释配置的,用 ...

  6. jsap支付_Java命令行界面(第20部分):JSAP

    jsap支付 JSAP ( Java Simple Argument Parser )2.1是本系列文章的第二十篇,重点是处理Java的命令行参数. JSAP页面描述了该库存在的原因:"我在 ...

  7. java登录界面命令_Java命令行界面(第12部分):CLAJR

    java登录界面命令 第十二篇有关在Java中处理命令行参数的文章的特色库是带有Java Reflection的命令行参数 (CLAJR). 该"库"是单个Java源文件( CLA ...

  8. java登录界面命令_Java命令行界面(第11部分):CmdLn

    java登录界面命令 这篇文章介绍了如何使用Ostermiller Java Utilities 1.08.02的CmdLn(Java命令行解析器)来处理基于Java的应用程序中的命令行参数. Ost ...

  9. java登录界面命令_Java命令行界面(第13部分):JArgs

    java登录界面命令 JArgs 1.0的区别在于,这是我的第13篇文章的主题,该文章是关于Java命令行参数解析的. JArgs是一个开放源代码( BSD许可 )库,主要由Steve Purcell ...

最新文章

  1. Redis主从配置及通过Keepalived实现Redis自动切换高可用
  2. 解析不是utf-8的xml文件 附(tag 属性的获取 )
  3. grails 环境找不到java_home
  4. IE内嵌google chrome frame解决浏览器兼容问题
  5. NS3可视化问题及解决办法
  6. 基于matlab 的燃油喷雾图像处理方法,基于MATLAB的燃油喷雾图像处理方法.doc
  7. 基于VMware Workstation创建虚拟机,以Ubuntu16.04为例
  8. android 首页广告显示不出来的,android – Admob插页式广告(全屏)不会显示
  9. win7系统图标异常修复方法
  10. ch340串口驱动_敏矽微电子Cortex-M0学习笔记07-串口通信详解
  11. 服务器运行时狂响,服务器常见故障大全
  12. 【Unity3D】表格
  13. 51单片机彩灯控制器c语言代码,【原创】第九届蓝桥杯单片机:彩灯控制器源程序和题目...
  14. pt与px的对应关系
  15. UILabel 首行缩进两个字符
  16. Unity 人物描边解决方案
  17. Mac 系统mysql密码重置
  18. 向上的路,从来都不好走(好文力荐)
  19. 美国国家标准与技术研究院(NIST)
  20. Web渗透测试之逻辑漏洞挖掘

热门文章

  1. Message Decoding密码翻译
  2. P4494-[HAOI2018]反色游戏【圆方树】
  3. P4980-[模板]Pólya定理
  4. nssl1446-小智的旅行【dp】
  5. 在洛谷开了一个邀请赛
  6. POJ2446-Chessboard【最大匹配,二分图,奇偶建图】
  7. ssl1776-游乐场【图论,深搜】
  8. 实践出真知之Spring Cloud之基于Eureka、Ribbon、Feign的真实案例
  9. jsp页面中JSTL/EL标签引用java后台静态static字段的方法总结
  10. java图片格式转化(例如jpg格式转化png)