前言 以前写过一些命令行程序,在需要带参数的时候都是自己来判断args,导致程序光解析args都占了好大一堆,而且解析代码也不美观。 偶然间发现了apache公共库中的cli库,在这里分享给大家。...入门 commons-cli中把解释参数分为三种状态,分别是定义、解释和询问交互。...>commons-cli 1.3.1 import org.apache.commons.cli...代码结构分析 包组织结构: commons-cli-1.3.1.jar org.apache.commons.cli 在cli包中,包含了所有的类,包括定义,解析,查询交互和Exception 类的关系结构图如下...// 判断短选项是否包含非法字符,如果包含抛出异常 OptionValidator.validateOption(opt); //短选项
Apache的commons-cli包是专门用于解析命令行参数格式的包。...而且可以定义哪些参数需要选项,如tar -f ,f参数就需要文件名选项,通过定义解析器才可以把f后面的内容解析为f指定的文件名。...; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.DefaultParser; import...org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options...commons-cli包进行命令行参数解析的示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。
昨天已经联系过几个基本的命令行参数使用场景,可以参考这里 通过使用Apache Commons CLI可以帮助开发者快速构建命令行启动模式,并可以快速生成帮助指令,基于用户启动参数提供不同的服务。...c选项,没有参数,就会报错 org.apache.commons.cli.MissingArgumentException: Missing argument for option: c at...org.apache.commons.cli.DefaultParser.checkRequiredArgs(DefaultParser.java:211) at org.apache.commons.cli.DefaultParser.parse...(DefaultParser.java:125) at org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:76)...Reason: " + exp.getMessage() ); } } 询问阶段——查询命令行参数 通过hasOption选项判断是否包含某个选项参数: // has the buildfile
目录 概念说明 Apache Commons CLI 简介 CLI 定义阶段 CLI 解析阶段 CLI 询问阶段 代码示例 概念说明 Apache Commons CLI 简介 Apache Commons...Apache Commons CLI 支持多种输入参数格式,主要支持的格式有以下几种: 1.POSIX(Portable Operating System Interface of Unix)中的参数形式...Apache Commons CLI 使用 Options 这个类来定义和设置参数,它是所有 Option 实例的容器。...; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.HelpFormatter; import...org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException
1.2.简介 Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问 http://jakarta.apache.org/commons/...CLI CLI 提供针对命令行参数,选项,选项组,强制选项等的简单API. Codec Codec 包含一些通用的编码解码算法。...Collections Commons-Collections 提供一个类包来扩展和增加标准的 Java Collection框架 Configuration Commons-Configuration...Lang Commons-Lang 提供了许多许多通用的工具类集,提供了一些java.lang中类的扩展功能 Latka Commons-Latka 是一个HTTP 功能测试包,用于自动化的QA...Math Math 是一个轻量的,自包含的数学和统计组件,解决了许多非常通用但没有及时出现在Java标准语言中的实践问题.
一、介绍一下 Apache Commons Cli,有一个感官的认识 我们在使用一些开源项目时,会敲一些命令,有简单的,比如 hadoop version;有复杂的,比如 flink run ......这些命令实际上最终还是会启动虚拟机来执行的,如果你用 vi 看过这些命令,就可以发现,最终都是调用的 java xxxx,来执行的。...而 Apache Commons Cli 这个库就是为了解决这个问题的。它封装了命令行的基本元素,帮助程序去解析传递给程序的命令行参数。也可以打印帮助信息来说明这个命令行的有效参数。...package com.hudsun.flink.commonscli; import org.apache.commons.cli.*; /** * @Author wangkai * @Time...testOptions(arg); } public static void testOptions(String[] args) { // Options 准备阶段,准备好所有的选项
漏洞概要 Jenkins 未授权远程代码执行漏洞, 允许攻击者将序列化的Java SignedObject对象传输给Jenkins CLI处理,反序列化ObjectInputStream作为Command...漏洞触发执行流程 SSD的报告披露了完整的漏洞细节,作为才学JAVA的我来说,看完这份报告,依旧不清楚具体的执行流程,因此有了下文,梳理漏洞触发的具体执行流程。...=, 该前导码包含一个经过base64编码的序列化对象。...类型转换异常ClassCastException:org.apache.commons.collections.map.ReferenceMap cannot be cast to hudson.remoting.Command...[.]commons[.]beanutils[.].*", "^org[.]apache[.]commons[.]collections[.]functors[.].*", "^org[.]apache
利用Apache Commons Collections实现远程代码执行 参考Matthias Kaiser在11月份的报告[1],我们以Apache Commons Collections 3为例,来解释如何构造对象...iMethodName + "' on '" + input.getClass() + "' threw an exception", ex); } } } 只需要传入方法名、参数类型和参数...另外需要注意的是,想要在调用未包含的package中的构造函数,我们必须通过反射的方式,综合生成任意代码执行的payload的代码如下: public static void main(String[]...我们可以直接使用工具ysoserial[2][5]来生成payload,当中包含了4种通用的payload:Apache Commons Collections 3和4,Groovy,Spring,只要目标应用的...确定了反序列化输入点后,再考察应用的Class Path中是否包含Apache Commons Collections库(ysoserial所支持的其他库亦可),如果是,就可以使用ysoserial来生成反序列化的
一、简介 flink-streaming-platform-web系统是基于flink封装的一个可视化的web系统,用户只需在web界面进行sql配置就能完成流计算任务, 主要功能包含任务配置、启/停任务...使用帮助选项(-h 或 --help)获取有关命令的帮助。 ...:138) 在 org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:664)...在 org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:213) 在 org.apache.flink.client.cli.CliFrontend.parseParameters...(HadoopSecurityContext.java:41) 在 org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java
(参数三) -Dversion=version(参数四) -Dpackaging=jar 例如,增加commons-io-2.3.jar,参数一是下载本地的jar路径,pom.xml配置如下所示,... org.apache.commons --参数二 commons-io -...如果您知道怎么彻底解决这个问题,请指教下。...\apache\commons\commons-io\2.3\commons-io-2.3.jar [INFO] Installing C:\Users\86134\AppData\Local\Temp...\mvninstall1394150247400548332.pom to C:\bisal\maven\repository\org\apache\commons\commons-io\2.3\commons-io
(参数三) -Dversion=version(参数四) -Dpackaging=jar 例如,增加commons-io-2.3.jar,参数一是下载本地的jar路径,pom.xml配置如下所示,... org.apache.commons --参数二 commons-io --参数三 2.3 --参数四 一开始执行,提示这个错误, C:\bisal\maven...如果您知道怎么彻底解决这个问题,请指教下。...\apache\commons\commons-io\2.3\commons-io-2.3.jar [INFO] Installing C:\Users\86134\AppData\Local\Temp...\mvninstall1394150247400548332.pom to C:\bisal\maven\repository\org\apache\commons\commons-io\2.3\commons-io
在这里我们将以字符串中的点符(.)的数量作为作业的复杂性。如发现一个点符(.)则将占用1秒钟的工作时间,线程将等待1秒钟。举个例子,如果作业描述是“Hello…”的形式将会占用3秒时间。...:commons-io-1.2.jar:commons-cli-1.1.jar:rabbitmq-client.jar Worker [*] Waiting for messages....:commons-io-1.2.jar:commons-cli-1.1.jar:rabbitmq-client.jar Worker [*] Waiting for messages....:commons-io-1.2.jar:commons-cli-1.1.jar:rabbitmq-client.jar NewTask Fifth message........因为我们已经定义了一个名为”hello”的未持久化的队列。RabbitMQ不允许通过不同的参数重新定义一个已经存在的队列,你坚持这样做的话会返回一个错误。
例如,我们要下载commons-lang3库,Maven坐标为: groupId: org.apache.commons artifactId: commons-lang3 version: 3.12.0...例如,Maven中央仓库的地址是:https://repo.maven.apache.org/maven2/ 以commons-lang3为例,在中央仓库中可以找到以下路径:org/apache/commons.../commons-lang3/3.12.0/ 下载需要的jar包,通常Maven库中的jar包有多个,其中包含了编译时的jar包和运行时的jar包,一般来说我们只需要下载包含jar包的目录下的jar文件即可...例如,如果您使用的是默认的本地仓库路径,jar包应该放在$HOME/.m2/repository/org/apache/commons/commons-lang3/3.12.0/目录下。...artifactId>gt-shapefile 24.0 总结: 具体根据自己的需求,随机应变,改变参数
它主要实现为Apache Commons Configuration库的扩展。...如果您的应用程序没有以编程方式安装任何配置,则将懒惰地安装包含系统属性和DynamicURLConfiguration的ConcurrentCompositeConfiguration。...---- 将Archaius与你自己的Apache Commons Configuration实现一起使用 我们已经知道Archaius它底层是依赖于Apache Commons Configuration...来做配置管理的,那么如果你已经有了自己的一套Apache Commons Configuration实现了怎么办呢?...这个时候就需要整合喽 如果您已经使用或扩展了Apache Commons Configuration中的任何类型的AbstractConfiguration,但是想要利用Archaius来为应用程序提供动态属性
第二步:选择"Window"菜单下的"Preference",然后弹出一个窗体,在窗体的左侧,有一列选项,里面会多出"Hadoop Map/Reduce"选项,点击此选项,选择Hadoop的安装目录(如我的...parameters"从中找见"hadoop.tmp.dir",修改成为我们Hadoop集群中设置的地址,我们的Hadoop集群是"/usr/local/hadoop273/hadoop_tmp",这个参数在...弹出的错误提示框内容为"An internal error occurred during: "Connecting to DFS hadoop".org/apache/commons/configuration...用归档管理器打开该包,发现只有commons-cli-1.2.jar 和hadoop-core.jar两个包。...然后,修改该包META-INF目录下的MANIFEST.MF,将classpath修改为一下内容: Bundle-ClassPath:classes/,lib/hadoop-core.jar,lib/commons-cli
例如,如果您想将 url 参数“skillName”传递给页面,您可以执行以下操作: https://ip/?...两个 OGNL 评估之一发生在 setId 函数期间,当它调用 findString(id) 并且当 name 参数包含“%{”或“}”时,添加了一个递归检查以不进行 OGNL 评估。...这很好,但如果不对局部变量“name”进行第二次 OGNL 评估,name 将不会包含用户提供的来自 URL 参数的数据。...这意味着对于某些 UIBean 标记,名称属性很容易受到双重 OGNL 评估,如果它们不包含值参数, 这可能会导致远程代码执行。...但仍有一些未开发的可能性。
一句话概括就是:一个父模块作为版本控制多个子模块,子模块负责接入到父模块当中作为整个项目的过程。...version>1.0.0 taglib-core 分为两个部分,一个部分是父pom的声明,包含...参数,要不然是不会显示被忽略的包的 or:curator-client:jar:4.1.0:compile [INFO] | | +- org.apache.zookeeper:zookeeper...:jar:3.5.4-beta:compile [INFO] | | | +- commons-cli:commons-cli:jar:1.2:compile [INFO] | | |...[WARNING] commons-logging:commons-logging:jar:1.2:compile [WARNING] org.apache.httpcomponents
MyClass未在类路径中,将抛出NoClassDefFoundError } } 2.2 依赖库缺失 程序依赖的第三方库未正确包含在类路径中,导致运行时找不到类文件。...] args) { String result = StringUtils.trim(" Hello "); // 如果Apache Commons Lang库未包含在类路径中,将抛出...3.1 检查类路径配置 确保所有必要的类文件和库包含在类路径中。 # 使用-classpath选项指定类路径 java -classpath ....-- Maven依赖配置 --> org.apache.commons commons-lang3...-- Maven依赖配置 --> org.apache.commons commons-lang3
0.0.1 同时也需要引入下面这几个依赖,否则会报错 commons-cli... commons-cli 1.4 4.5.13 org.apache.commons... org.apache.commons <artifactId...4四、json传参相信大家在做数据同步的时候,肯定不是简单的sql,一般还有条件的,也就是参数,那参数要怎么传进去呢?
前言 分析了URLDNS链,那么开始Commons Collections系列链的分析 Commons Collections Apache Commons是Apache软件基金会的项目,Commons...类可以在一个元素被加入到集合内时自动对该元素进行特定的修饰变换,在decorate()方法中,第一个参数为修饰的Map类,第二个参数和第三个参数作为一个实现Transformer接口的类,用来转换修饰的...的transform方法,将前一个Transformer的返回值作为下一个Transformer的参数不断调用,从而执行calc系统命令弹出计算器 import org.apache.commons.collections.Transformer...// 获取对象 new ConstantTransformer(Runtime.class), // 获取方法,将返回值传递给下一个作为参数...must not be null"); } this.factory = factory; } 也就是调用LazyMap中decorate方法,将恶意构造好的 Transformer 链作为第二个参数传入即可当
领取专属 10元无门槛券
手把手带您无忧上云