java登录界面命令

由于Tweet,我了解了本系列中第26个基于Java的功能强大的库,该库用于解析命令行参数 。 CmdOption在其GitHub主页上被描述为“一个通过注释配置的,用于Java 5+应用程序的简单注释驱动命令行解析器工具包。” 该项目的副标题是“命令行解析从未如此简单。”

注释@CmdOption用于注释将包含已解析的命令行参数的字段(或方法)。 换句话说,使用@CmdOption批注可以通过CmdOption完成“定义”阶段。 这显示在下一个代码清单中。

使用CmdOption的“定义”阶段

@CmdOption(names={"--file","-f"}, description="File Path/Name", minCount=1, args={"filePathAndName"})
private String file;@CmdOption(names={"--verbose","-v"}, description="Is verbosity enabled?", maxCount=0)
private boolean verbose;

与本系列中的其他文章一样, 本文章中使用的示例是指定文件路径和名称以及详细程度的选项。 GitHub上提供了本文中示例代码清单的完整源代码清单。 如上面的代码清单所示,可以使用@CmdOption批注的names元素指定“长”(带双连字符)和“短”(带单连字符)选项名称。 minCount元素用于指定必须向其传递特定选项的参数,而args元素列出对将在帮助/使用情况显示中呈现的选项的参数的字符串引用。 verbosity选项的maxCount元素设置为0,因为不应为该选项提供任何参数( -v--verbose存在就足够了)。

所述“语法分析”阶段在CmdOption通过使实例的类的与实现@CmdOption -annotated字段(或方法)的CmdOption的的构造CmdlineParser类,然后使String[]表示命令行参数的parse(String[])实例化的CmdlineParser类的parse(String[])方法。

使用CmdOption进行“解析”阶段

final Main instance = new Main();
final CmdlineParser parser = new CmdlineParser(instance);
parser.parse(arguments);

CmdOption中的“询问”阶段仅包括在传递给CmdlineParser构造函数的包含类的实例上访问@CmdOption字段(或方法)。

CmdOption中的“审讯”阶段

out.println("File path/name is '" + instance.file + "'.");
out.println("Verbosity level is " + instance.verbose);

CmdOption提供了使“帮助”或“使用”语句的生成更容易的机制。 如果@CmdOption批注包含元素isHelp=true ,则在命令行上指定与isHelp=true关联的选项时,CmdOption将不会验证命令行参数。 这样可以防止显示有关缺少必需选项或参数的错误消息,然后可以调用CmdlineParser.usage()方法以使CmdOption打印出用法/帮助信息。 接下来展示了一部分证明这一点的代码。

使用CmdOption的“帮助”

@CmdOption(names={"--help","-h"}, description = "Display this help message", isHelp=true)
private boolean help;// ...if (instance.help)
{parser.usage(out);
}

以下三个屏幕快照显示了上面的代码正在使用CmdOption。 第一张图像描述了两条错误消息,一条未指定选项时( -f / --file是必需的),另一条在未指定参数的情况下指定“ file”选项。 第二张图描述了短和长选项名称的组合。 第三幅图像显示了指定-h--help选项时打印的用法。

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

  • CmdOption是开源的,并根据Apache许可2.0版发布。
  • de.tototec.cmdoption-0.5.0.jar的大小约为82 KB,不需要第三方依赖性。
  • CmdOption 0.5.0 使用“主要版本:49”进行编译 ,这意味着它与J2SE 5应用程序兼容。 尽管本系列中涵盖了多个库,这些库的注释与CmdOption的注释相似,但在某些情况下,使用旧版Java的功能可能会有所不同。
  • CmdOption仍受支持; 本帖子( 0.5.0 )中介绍的版本已于本月初(2017年10月9日)更新。

CmdOption是一个易于使用的库,用于解析Java中的命令行选项。 它带有自由开源许可证,并已收到最新更新。

其他参考

  • CmdOption (GitHub)
  • Maven中央存储库上的CmdOption
  • MVNRepository上的CmdOption
  • Twitter上的@ToToTec和@TobiasRoeser

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

java登录界面命令

java登录界面命令_Java命令行界面(第26部分):CmdOption相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

    java登录界面命令 Jargo在其GitHub主页上定义为"一种减轻程序参数/选项处理的工具". 当已经存在许多其他命令行处理库时,该页面为另一个命令行处理库提供了基本原理 ,该 ...

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

    java登录界面命令 这篇文章中介绍的基于Java的命令行参数处理库是IBM developerWorks文章Java编程动态性,第3部分,应用的反射 (第2003 部分,此归档文章于2016年&qu ...

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

    java登录界面命令 本系列中第19个帖子的重点是从Java代码解析命令行参数是jClap ( Java命令行参数解析器 ),不应与JCLAP库混淆,该库是我本系列前 一篇文章的重点. 上 一篇 文章 ...

最新文章

  1. jquery ajax示例
  2. pls-00302: 必须声明 组件_vue学习手册-单文件组件使用
  3. ++i与i++的根本性区别(两个代码对比搞定)
  4. 867. 分解质因数
  5. 【sql那些事】时间处理的一揽子事
  6. android打包方法超过65k错误
  7. sqlite 服务器数据库文件,sqlite可以做服务器数据库吗
  8. iOS 蓝牙扫描设备注意 2021-10-12
  9. 【兼容封装】addEventListener()和attachEvent()跨浏览器的兼容性处理
  10. css垂直居中怎么设?文字上下居中和图片垂直居中
  11. 奇迹mu开服教程:开服服务端的架设及服务器推荐需要那些东西
  12. MATLAB寻找高斯光束光斑中心
  13. 深入理解Android相机体系结构之十
  14. 你真的了解“药品追溯码”吗?
  15. centos8 安装kvm
  16. 电子元器件贸易采购管理常见难题及解决方案
  17. 【论文速览】深度模型-降维与聚类
  18. [007]嵌入式学习:模数转换器-ADC
  19. 【JAVA】读取excel导入数据库,形成树状结构
  20. 不同材质皮革皮衣皮裤应对西南盆地地区冬季低温阴冷湿冷气候会有什么样的效果?

热门文章

  1. A - Junk-Mail Filter HDU - 2473
  2. 学习手记(2020/8/19~2021/3/19)
  3. P2827-蚯蚓【队列】
  4. jzoj3509-倒霉的小C【gcd,欧拉函数】
  5. 【2018.4.7】模拟赛之四-ssl2385 猜数【水题】
  6. YL杯超级篮球赛(jzoj 1325)
  7. 二元运算 FFT+分治
  8. Spark入门(十六)之分组求TOP N最小值
  9. jQuery中position()与offset()区别
  10. vue 动态修改路由参数