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

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登录界面命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab如何添加度,matlab里的模糊工具箱绘制隶属度函数曲线导入到word的方法

在fuzzy logic toolbox里有 fuzzy membershipfunction可以编辑隶属度函数,非常方便,但是我们写论文一般要把相应的曲线导入到word里,怎样将隶属度函数曲线导入到word里呢?本人也苦苦的寻找了好久。。。方法如下:先看看…

pythonista3使用说明_Pythonista中文文档:sound

sound — 音效和音乐播放 sound模块包含在iOS上播放音效和音频文件的功能。 它还可以使用Recorder类从麦克风录制音频文件。 注意: 为了使用Recorder类,你必须允许访问麦克风。首次使用Recorder.record()方法时,系统会自动显示一个对话框。如果你未授权访…

Linux 命令之 hostnamectl -- 查看/修改当前主机的信息

文章目录命令介绍常用选项命令示例(一)查看当前主机的信息(二)设置当前主机的名称命令介绍 hostnamectl 可用于查询和更改系统主机名和相关设置。此工具区分三种不同的主机名: 高级“漂亮”主机名,其中可…

getopt java_Java命令行界面(第28部分):getopt4j

getopt javagetopt4j的页面将其描述为“一个根据GNU样式解析命令行参数的库。” 然后, 页面介绍getopt4j :“getopt4j库旨在以与glibc (GNU C运行时库)中的C getopt()函数相同的方式解析命令行选项。 与原始…

matlab 返回变量类型的命令,MATLAB主要命令汇总

MATLAB主要命令汇总1、常用信息help:在线帮助(显示在命令窗)。helpwin:在线帮助(独立窗口显示)。ver:MATLAB及工具箱的版本信息。2、管理工作区命令who:显示当前变量。whos:显示当前变量具体信息。clear:从内存中清楚变量和函数。quit:退出MATLAB。3、管理命令和函数what:显示当…

springboot redis token_Spring Boot + Redis + 注解 + 拦截器来实现接口幂等性校验

优质文章,及时送达作者 | wangzaiplus链接 | www.jianshu.com/p/6189275403ed一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能…

语言代号/地区代号/国家代号

国家/地区语言代码简体中文(中国)zh-cn繁体中文(台湾地区)zh-tw繁体中文(香港)zh-hk英语(香港)en-hk英语(美国)en-us英语(英国)en-gb英语(全球)en-ww英语(加拿大)en-ca英语(澳大利亚)en-au英语(爱尔兰)en-ie英语(芬兰)en-fi芬兰语(芬兰)fi-fi英语(丹麦)en-dk丹麦语(丹麦)da-dk英…

java 示例_功能Java示例 第2部分–讲故事

java 示例这是称为“ Functional Java by Example”的系列文章的第2部分。 我在本系列的每个部分中开发的示例是某种“提要处理程序”,用于处理文档。 在上一部分中,我从一些原始代码开始,并应用了一些重构来描述“什么”而不是“如何”。 …

python如何读取文件内容求和_使用python对文件中的数值进行累加的实例

问题描述: 一个文件由若干条记录组成,记录的格式为:“num1 num2”,有时候,需要统计文件中num1对应的num2的总值。 处理问题的思路 用传说中的python来处理,很方便。几行代码就可以了。 处理思路&#xff1a…

基2FFT算法matlab程序编写,频率抽取(DIF)基2FFT算法的MATLAB实现

频率抽取(DIF)基2FFT算法和时间抽取(DIT)基2FFT算法是两种等价的FFT算法,其相同之处:(1)DIF与DIT两种算法均为原位运算。(2)DIF与DIT运算量相同。不同之处:(1)DIF的算法结构是将DIT算法结构倒过来。 DIF为输入顺序,输出乱序。运算…

Linux 命令之 localectl -- 控制系统的本地化与键盘布局

文章目录命令介绍常用选项参考示例(一)显示当前的本地化设置与键盘映射(二)设置系统的本地化字符集环境变量(三)列出本地所有字符集(四)列出所有可用的控制台键盘映射(五…

Linux 命令之 locale -- 设置和显示程序运行的语言环境

文章目录命令介绍locale 设置规则使用详解(一)查看当前 locale 设置(二)查看当前系统所有可用 locale(三)设置系统的 locale命令介绍 locale 是 Linux 系统中多语言环境的设置接口,在 Linux 中…

python range函数范围_Python range函数

Python range函数教程 range函数详解 语法 range(start, stop[, step]) 参数 参数 描述 start 计数从 start 开始。默认是从 0 开始。 stop 计数到 stop 结束,但不包括 stop。 step 步长,默认为1,可以支持负数。 返回值 返回生成的序列。 案例…

php sapi globals,PhP 常见安装错误

ext/iconv/.libs/iconv.o: In function php_iconv_stream_filter_ctor’:/home/king/php-5.2.13/ext/iconv/iconv.c:2491: undefined reference to libiconv_open’collect2: ld returned 1 exit statusmake: *** [sapi/cli/php] Error 1[roottest php-5.2.13]# vi Makefile在安…

openpyxl删除添加excel列_Python | 如何使用Python操作Excel(二)

0 前言在阅读本文之前,请确保您已满足或可能满足一下条件:请确保您具备基本的Python编程能力。请确保您会使用Excel。请确保您的电脑已经安装好Python且pip可用。请确保您已经读过前文:如何使用Python操作Excel(一)LogicPanda,公众…

Linux 命令之 timedatectl -- 查看系统当前时区设置

timedatectl命令用于查看当前时区设置。 # 查看当前时区设置 $ timedatectl# 显示所有可用的时区 $ timedatectl list-timezones # 设置当前时区 $ sudo timedatectl set-timezone Americ…

payara 创建 集群_使用Payara Micro的Easy Java EE Microservices

payara 创建 集群想知道如何开始使用Java EE Microservices? 使用Java EE API部署微服务只需要几个快速步骤。 许多人认为Java EE对于与微服务一起使用而言过于繁重,但事实并非如此……尤其是如果您仅利用服务所需的Java EE规范。 在这篇简短的文章中&am…

php导出页面居中设置,PHPExcel导出插入图片和居中问题

首先到网上先下载PHPExcel下载后解压得到这两个文件下载后引用该文件最后编写相关代码:首先是图片插入导出$objDrawing new PHPExcel_Worksheet_Drawing();$objDrawing->setName(‘Photo‘);$objDrawing->setDescription(‘Photo‘);$objDrawing->setPath…

Linux 命令之 loginctl -- 查看系统当前登录的用户

# 列出当前session $ loginctl list-sessions# 列出当前登录用户 $ loginctl list-users# 列出显示指定用户的信息 $ loginctl show-user ruanyf

两台电脑通过usb共享网络_怎样让电脑通过手机共享上网?

手头有部七年前买的安卓智能手机已经不用了,卖掉不值钱,放在家里也是浪费。能否让它继续发挥余热呢?最近找到了一个好办法,就是可以让个人电脑通过它来上网(如下图所示):1. 用数据线将电脑与手机…