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

java登录界面命令

这篇文章中介绍的基于Java的命令行参数处理库是IBM developerWorks文章Java编程动态性,第3部分,应用的反射 (第2003 部分,此归档文章于2016年“归档”,但仍可通过PDF下载 )的特色库。 。 该库称为JArgp ( Java命令行参数处理库 ),在其主页上定义为“用于在Java中处理命令行参数的库”。 该页面添加:“与大多数其他此类库不同,JArgp使用反射将实际值直接存储到目标应用程序对象中的字段。” JArgp 1.0在这篇文章中具有特色。

JArgp是一个简约的库,如JArgp JAR中的少数类所示。

在JArgp中,“定义”阶段是通过指定ParameterDef实例数组来完成的。 可以编写自定义类来扩展ParameterDef类,但是我将能够使用该类提供的两个扩展( StringDef和BoolDef )来实现本系列前面的文章中实现的文件路径/名称和详细参数。 这在下一个代码清单中得到了示例(完整的代码将在GitHub上提供 )。

JArgp的“定义”阶段

private static final ParameterDef[] PARAMETERS_DEFINITIONS =
{new StringDef('f', "file", "File path and name"),new BoolDef('v', "verbose", "Verbosity level")
};

ParameterDef扩展类StringDefBoolDef的构造函数的初始参数是单个字符,它将成为命令行标志。 在这种情况下,定义的命令行参数标志对于文件路径/名称将为“ -f”,对于详细程度将为“ -v”。 每个构造函数的第二个参数是将与命令行标志关联的任何值写入的类的字段的名称。 每个构造函数的第三个参数是对该命令行参数标志的描述。 据我所知,无法指定“长”参数名称(在这种情况下,无法指定--file--verbose )。

“解析”阶段是通过调用静态ArgumentProcessor方法processArgs(String [],ParameterDef [],Object)在JArgp中完成的。 下一个代码清单中对此进行了举例说明。

JArgp中的“解析”

final Main instance = new Main();
// The integer returned by the next invocation is actually the
// zero-based index of next argument to be processed
final int numberArgumentsProcessed= ArgumentProcessor.processArgs(
arguments, PARAMETERS_DEFINITIONS, instance);

通过访问实例中名称与参数定义中提供的名称匹配的字段,可以实现JArgp的“询问”阶段。 这显示在下一个代码清单中。

JArgp中的“审讯”阶段

out.println("File path/name is " + instance.file+ " and verbosity is " + instance.verbose);

下一个屏幕快照演示了到目前为止显示的代码的使用。

如果我想在定义命令行标志时将我提供的描述应用于命令行标志,则可以使用实例方法进行解析,而不是使用前面介绍的静态函数方法。 下一个代码清单中对此进行了演示。

final Main instance = new Main();
final ArgumentProcessor argumentProcessor= new ArgumentProcessor(PARAMETERS_DEFINITIONS);
argumentProcessor.processArgs(arguments, instance);
argumentProcessor.listParameters(50, out);

上一个代码清单的最后一行演示了如何使用ArgumentProcessor.listParameters(int,PrintStream)方法将标志及其描述写入输出。 下一个屏幕快照将演示此输出。

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

  • JArgp是开源的,可以在主要项目页面 ( Sosnoski Software Associates )上查看其许可证。
  • jargp.jar文件的大小仅为10 KB。
  • 这篇文章中介绍的JArgp库不同于另一个也称为JArgP的库-Java Command Line Argument Parser (来自Sosnoski Software Associates的 JArg p与来自Munkei Software的 JArg P )。

JArgp是用于在Java中处理命令行参数的简约库。 默认情况下,它不支持“长”参数名称,并且不支持本系列中介绍的其他某些库那么多的功能,但是它很小且易于使用。 我之所以将它主要包含在本系列文章中是因为其背景与IBM DeveloperWorks文章相关 。

其他资源

  • JArgp项目页面
  • JArgp下载 (SourceForge)
  • JArgp API文档 (Javadoc)
  • Java编程动力学,第3部分,应用反射 :构建命令行参数框架

翻译自: https://www.javacodegeeks.com/2017/09/java-command-line-interfaces-part-16-jargp.html

java登录界面命令

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

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

相关文章

QPW 用户签到日志表(tf_user_signin_log)

用户签到日志表 CREATE TABLE tf_user_signin_log (signin_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 签到ID,user_id bigint(20) DEFAULT NULL COMMENT 用户ID,insert_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,update_time timestamp NOT …

tnsnames.ora配置未生效_1分钟了解网络交换机的6种命令配置模式

我们在配置交换机的时候首先要了解的就是交换机命令模式,小编用Cisco思科交换机为例带大家了解交换机的6种配置模式。Cisco IOS提供了用户EXEC模式和特权EXEC模式两种基本的命令执行级别,同时还提供了全局配置、接口配置、Line配置和vlan数据库配置等多种…

dockerfile mysql例子_docker-compose 实用示例

简单来说, docker compose就是一键启动/关闭多个容器的工具, 它能够帮你解决容器之间依赖的问题, 哪个先启动, 依赖哪个容器等.当开发的系统越来越复杂, 开发环境和部署都没那么简单的时候, 可以试试docker compose.下面会把我实际经验中的一个例子简化出来,一步步教…

QPW 操作日志表(tl_operate_log)

操作日志表 前端每次调后端服务时,会往这张表插入一条记录,作为接口调用日志,出现 bug 时可以查询这张表追溯问题。 CREATE TABLE tl_operate_log (operate_log_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 操作ID,user_id bigint(20) …

java 线程中创建线程_如何在Java 8中创建线程安全的ConcurrentHashSet?

java 线程中创建线程在JDK 8之前,还没有办法在Java中创建大型的线程安全的ConcurrentHashSet。 java.util.concurrent包甚至没有一个名为ConcurrentHashSet的类,但是从JDK 8开始,您可以使用新添加的keySet(默认值)和ne…

docker 删除所有镜像_关于 Docker 镜像的操作,看完这篇就够啦 !(下)| 文末福利...

紧接着上篇《关于 Docker 镜像的操作,看完这篇就够啦 !(上)》,奉上下篇 !!!镜像作为 Docker 三大核心概念中最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌握的。本文将带您一步一…

排序出错Java_使用picard排序去重出错

命令:java -jar/public/home/nieyg/biosoft/package/picard-tools-1.124/picard.jar SortSam \I/public/home/nieyg/atacseq/data/Rawdata/align/LDN-D2-1.raw.bam\OLDN-D2-1.sort.bam \SORT_ORDERcoordinate错误信息:Exception in thread "main&qu…

移动端设备标识码/设备唯一标识码/设备唯一性

文章目录名词释义Android 设备标识码iOS设备标识码总结名词释义 Device ID:设备ID。 IMEI:International Mobile Equipment Identity,国际移动设备身份码的缩写。是由15位数字组成的“电子串号”,它与每台手机一一对应&#xff0…

python与access选哪个_从Python连接到Access

I want to be connected to a database Boreas (Access) from Python. How to be connected from Python to Access database Northwind? 解决方案 Here are 2 ways, with COM dispatch and with odbc. You will need the pywin32 extensions and/or pyodbc to use these meth…

aws实例启动失败_AWS:启动安装了APOC的Neo4j实例

aws实例启动失败安装Neo4j之后,我要做的第一件事就是安装APOC库 ,但是我发现在AWS上旋转服务器时这是一个手动过程,所以我想简化一下。 已经有一个Neo4j AMI可以安装Neo4j 3.2.0 ,我的同事Michael指出,我们可以通过编…

设备唯一标识/设备码/设备标识码

文章目录一、MAC地址二、IMEI三、MEIDMEID 和 IMEI 用途的区别四、序列号(一)苹果手机序列号(二)华为手机序列号一、MAC地址 MAC地址(英语:Media Access Control Address),直译为媒…

QPW 点评表(tf_appraise)

点评表 CREATE TABLE tf_appraise (appraise_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 点评ID,company_id bigint(20) DEFAULT NULL COMMENT 企业ID,user_id bigint(20) DEFAULT NULL COMMENT 用户ID,avg_score decimal(4,2) DEFAULT 0.00 COMMENT 综合评分,contributi…

python多次输入数据_如何用python3输出重复的数据?

面对很多重复的数据,如果人工一个个处理起来会很麻烦,而且要浪费大量的时间和精力。之前就python处理数据是简单便捷的,有没有一种方法能把重复的数据输出出来,这样就一目了然了。相信有一些小伙伴也跟小编有同样的困扰&#xff0…

java magic number_避免JDBC查询中的CheckStyle magic number错误

我正在上课一个小组项目,我们正在尝试CheckStyle.我对Java非常满意,但从未触及到JDBC或在此之前完成任何数据库工作.我想知道如果有一个优雅的方式来避免在准备语句电话中出现错误的数字错误,请考虑:preparedStatement connect.prepareStatement("INSERT INTO…

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

java登录界面命令Giles Winstanley的JCLAP ( Java命令行参数解析器 )是基于Java的命令行处理库的系列文章中介绍的第18个库。 这篇文章的示例基于JCLAP 1.4 ,它需要Java 8 。 JCLAP主页上指出:“ JCLAP帮助Java开发人员为其应用程…

MySQL命令之show用法详解

文章目录参考示例(一)查看表字段详情(二)显示某个表的创建语句(三)显示所有数据库的名称(四)查看已选数据库中的所有表(五)查看某个数据库的创建语句&#xf…

java关闭websocket_关闭代码1006关闭websocket的原因

关闭代码1006是一种特殊的代码,它表示浏览器实现异常(本地)关闭了连接。在websocket.onerror(evt)事件中查看详细信息。但是,Chrome很少会向JavaScript端报告任何接近代码1006的原因。这可能是由于WebSocket规范中的客户端安全规则所致,以防止…

python生成c语言代码_Python爬取C语言中文网教程生成PDF

[Python] 纯文本查看 复制代码import requests from lxml import etree import re import os import pdfkit def gethtml(url,encode): r requests.get(url) r.encoding encode return r.text def writehtml(path,str): f open(path,w,encodingutf-8) f.write(str) f.close …

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

java登录界面命令Jargo在其GitHub主页上定义为“一种减轻程序参数/选项处理的工具”。 当已经存在许多其他命令行处理库时,该页面为另一个命令行处理库提供了基本原理 ,该列表的顶部是“因为类型安全性,不变性和可读性很重要”。 Jargo的选项…

QPW 提现申请单表(暂时不做)(tf_cash_apply)

提现申请单表 这是用户提现申请单表,这是一种申请单据。 CREATE TABLE tf_cash_apply (cash_apply_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 申请单ID,cash_order_no bigint(20) NOT NULL UNIQUE COMMENT 提现申请单编号, # 补cash_order varchar(100) NOT…