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

jsap支付

JSAP ( Java Simple Argument Parser )2.1是本系列文章的第二十篇,重点是处理Java的命令行参数。 JSAP页面描述了该库存在的原因:“我在Internet上找到了多个解析器,所有解析器都处理了开关,但是没有一个解析器具有我想要的返回类型和配置文件方面的多功能性。”

JSAP提供了相当多的灵活性,但通常会付出一定的复杂性。 幸运的是,JSAP提供了一个名为SimpleJSAP的类,它使使用JSAP完成简单任务变得更加容易。 JSAP文档以这种方式表达了这一观点: “如果您想减少处理命令行的代码量,JSAP提供了一个SimpleJSAP,可以为您完成大部分工作。” 下一个代码清单演示了在单个(尽管很详细)语句中使用SimpleJSAP来定义预期的命令行选项。

JSAP的“定义”阶段

final SimpleJSAP jsap = new SimpleJSAP("Main Application","Demonstrate JSAP",new Parameter[]{new FlaggedOption("file", STRING_PARSER, NO_DEFAULT, REQUIRED, 'f', "file", "File path/name."),new Switch("verbose", 'v', "verbose", "Requests verbose output." )});

对于上面的代码清单,我使用了静态导入来减少此“定义”代码的详细程度。 这些可以在GitHub上的完整代码清单中看到。 上面的代码定义了本系列中用于解析Java命令行参数的库中所有文章中使用的两个选项:文件路径/名称和详细程度。 单个字符'f''v'是短选项名称,而长选项名称在它们各自的调用( fileverbose )之后。 请注意,命令行参数的“定义”也可以通过XML进行配置 ,尽管此处未演示。

所述“语法分析”阶段在司法制度评估方案与其中的调用另一单个语句实现解析(字符串[])上的实例方法SimpleJSAP返回的一个实例JSAPResult 。

JSAP的“解析”阶段

final JSAPResult parsedResult = jsap.parse(arguments);

JSAP的“询问”阶段是通过调用parse方法返回的JSAPResult实例来完成的,如下面的代码清单所示。

JSAP的“审讯”阶段

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

JSAP将生成自动用法和帮助语句。 下一个代码清单演示了如何使用SimpleJSAP.messagePrinted()方法来确定是否发生了一些解析错误,然后使用SimpleJSAP.getHelp()消息来访问自动生成的“帮助”消息。

JSAP的“帮助”

if (jsap.messagePrinted())
{out.println(jsap.getHelp());System.exit( -1 );
}

接下来的两个屏幕快照演示了如何使用JSAP执行本文中所示的代码示例。 第一张图片描述了未提供必需的-f / --file标志时打印的用法说明。 第二幅图描绘了基于JSAP的示例代码的正常行为。

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

  • JSAP是开源的,并获得了次级GNU公共许可证 (LPGL)的许可 。
  • JSAP-2.1.jar JAR文件的大小约为68 KB,基本功能不需要第三方依赖性。
    • 从XML加载JSAP配置的能力(本文未涵盖)确实需要XStream 。
  • 《 JSAP手册》更详细地讨论了当有其他可用的Java命令行解析替代方法时, 为什么编写JSAP的原因 。
  • JSAP被其他产品使用 , 受到了一些用户的好评 ,并且已在Groovy中代替内置的 Apache Commons CLI使用 。

JSAP似乎是较旧的基于Java的命令行解析库中较流行的一种。 相对容易使用的基本功能(如本文中演示的功能),还可以提供更多的灵活性和可定制性,以满足更复杂的需求。

其他资源

  • JSAP v2.1:Java简单参数解析器
  • SourceForge上的JSAP
  • JSAP – Java简单参数解析器(v2.1)手册
  • MvnRepository上的JSAP
  • JSAP API文档 (Javadoc)
  • 解析命令行参数– JSAP
  • Groovy的命令行参数解析 (使用JSAP)

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

jsap支付

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

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

相关文章

QPW 行政区划字典表(td_area)

行政区划字典表 CREATE TABLE td_area (area_code varchar(10) NOT NULL COMMENT 区域编码,area_name varchar(50) DEFAULT NULL COMMENT 区域名称,area_fullName varchar(300) DEFAULT NULL COMMENT 区域全称,is_hot tinyint(2) DEFAULT 0 COMMENT 是否热门, # 0-否&#xff…

python语句大全input_input提示文字 Python基础输入函数,if-else语句,if-elif

input()函数 此功能用于获取用户输入。 (调用1)input后,程序将立即暂停并等待用户输入。在用户完成内容输入后,单击Enter,程序将继续向下执行。 例如: input() (2&#x…

Linux 命令之 lsusb -- 显示本机的USB设备列表信息

文章目录命令介绍常用选项命令示例(一)显示 USB 设备详细信息命令介绍 lsusb命令用于显示本机的USB设备列表,以及USB设备的详细信息。 lsusb命令显示的USB设备信息来自“/proc/bus/usb”目录下的对应文件。 语法格式:lsusb [选项…

ftp限流java,FTP流量限制的方法

一般来说,下载都是通过FTP来实现的,这样简单的采用ACLs就可以实现的。不过这样存在一个问题,就是原来正常的网络访问也给禁止了,无法继续工作,另外,还有大量的DOWNLOAD不通过FTP,而是借助HTTP协…

argparser_Java命令行界面(第22部分):argparser

argparserJohn Lloyd的argparser是本系列的第二十二篇有关基于Java的命令行参数解析的文章中介绍的库。 该库的主页除了提供单个源代码示例外,还提供了指向基于Javadoc的API文档 ,JAR文件,ZIP文件和TAR文件的链接。 本帖子中使用的示例与本系…

判断 小程序 是否 滚动到页面底部 scrolltolower_微信小程序长列表性能优化——recycle-view

背景:第七次人口普查项目使用是微信小程序原生框架,组件是根据用户需求由项目组前端组组长封装完成的。采集小程序正式登记首页列表页面,根据腾讯老哥在sentry上的监控可以看出,列表页面前端性能比较差,主要表现在一些…

Linux 命令之 lspci -- 显示当前设备所有PCI总线信息

文章目录命令介绍常用选项命令示例(一)罗列 PCI 设备命令介绍 lspci命令用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息。 现在主流设备如网卡储存等都采用PCI总线 常用选项 选项说明-n以数字方式显示PCI厂商和设备代码-…

arm java 性能怎么样,ARM v6上使用java的Number to String转换性能

我在ARM v6处理器上运行Java软件.这个程序的性质要求我将一些数字(int或float)转换为String.处理器运行速度为850Mhz. Java Runtime是OpenJDK Zero VM 1.7.0_21-b02.我并不期待这里有坚如磐石的表演,但我希望能比我在下面的代码片段中看到的更有效.long time1, time2;float[] s…

java rop_Java命令行界面(第23部分):Rop

java ropRop库在其主页上被描述为“用Java编写的轻量级命令行选项解析器”。 Rop的“简介”还指出:“ Rop的设计目的是最小化同时方便,并涵盖了大多数常见的命令行解析用例。” 这篇文章是本系列中有关解析Java命令行参数的系列文章中的第23部分&#xf…

python2打开文件_关于python:何时以二进制模式打开文件(b)?

我注意到在文档中他们总是用wb打开一个CSV文件。 为什么b? 我知道b代表二进制模式,但是你什么时候使用二进制模式(我猜想CSV文件不是二进制模式)。 如果相关我是从arcpy.da.SearchCursor()查询的结果写入CSV 编辑:根据这个答案注意到wb用于编…

Linux 命令之 dmidecode -- 显示机器的DMI信息

文章目录命令介绍常用选项(一)Valid string keywords are(二)Valid type keywords are(三)type全部编码列表命令示例示例1,-d 后面跟任何东西,输出内容都相同,奇葩&#…

java 接口 私有_Java 9:好的,坏的和私有的接口方法

java 接口 私有Java 9 是在几周前发布的。 查看发行说明 ,其中包含许多有趣的功能。 不过,我觉得并非一切都是不如Oracle和Java行家似乎图片吧 。 我看到了Java世界中的三个趋势,分别是好,坏和丑陋。 让我们从好的开始。 Birdman…

java群面自我介绍,腾讯群面,自我介绍很重要

我面试时间是十一点,但是一直等到十二点多才开始,去了以后先要填一张表,贴照片,内容差不多就是我们自己简历上的,然后再群面的时候交给面试官。我们那个小组是六个人,在一个房间里,面试官先让我…

python卸载module_Python学习笔记

拖了一整年终于开始学习Python编程。为了逼自己快速上路,强行要求自己本学期的两门课程全部的coding作业用Python完成。 一门机器学习(computational Stats),一门Jeff WU 大佬的实验设计与分析(DOE)。即使R…

Linux 命令之 uname -- 显示系统/主机的相关信息

文章目录一、命令介绍二、常用选项三、命令示例(一)显示系统主机名、内核版本号、CPU类型等信息一、命令介绍 uname 命令的英文全称即“Unix name”。用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。如果未指定任何选项&#xf…

json api_JSON模式在构建和部署API中的作用

json api什么是JSON模式 ? 它提供了一种描述任何JSON值的结构和属性的彻底方法。 在记录对任何JSON API的请求和响应时,它非常有用。 本文将探讨其在API的软件开发周期中的作用。 记录JSON响应格式 定义数据架构的最明显的用例也许是在记录API响应的结构…

java 中允许键重复的,二叉搜索树的定义是否允许重复键?

许多算法将指定排除重复项 . 例如&#xff0c;MIT算法书中的示例算法通常提供没有重复的示例 . 实现重复(在节点上或在一个特定方向上作为列表)是相当简单的 . )大多数(我见过)将左边的孩子指定为<&#xff0c;将右边的孩子指定为> . 实际上&#xff0c;允许右子节点或左…

mlp神经网络_白天鹅黑天鹅灰天鹅?卷积神经网络帮你搞定识别

全文共3014字&#xff0c;预计学习时长6分钟本文将通过一系列的天鹅图片来解释卷积神经网络&#xff08;CNN&#xff09;的概念&#xff0c;并使用CNN在常规多层感知器神经网络上处理图像。图像分析假设我们要创建一个能够识别图像中的天鹅的神经网络模型。天鹅具有某些特征&am…

Linux 关机/关闭主机/关闭系统/重启系统/注销系统的命令

文章目录一、shutdown二、reboot三、init四、halt五、poweroff六、logout七、systemctl八、Alt PrtSc (SysRq) REISUB九、molly-guard&#xff08;一&#xff09;molly-gurar 是什么&#xff1f;&#xff08;二&#xff09;如何安装 molly guard?一、shutdown 该命令用于断…

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

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