Args4J
修改翻译整理
相关资源:https://blog.csdn.net/zhishangdezuomo/article/details/25201029/
https://blog.csdn.net/dnc8371/article/details/107260230?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase
用args4j库在Java应用程序中解析命令行参数
Args4J
使用一个被称为Option
的类来保存输入的参数.- 根据
Option
类来应用参数,每个参数可以对应一个类中的属性. - 类中属性用Annotation注解,在Annotation中给出该参数的选项, 还可以配置其他有用的信息.该Annotation就是 Option 注解:
从类的main(final String[])函数接收的命令行参数是传递给parseArguments(String[])方法的parseArguments(String[])数组。
Option 注解
-
标记接收命令行开关值的field/setter。
-
该注解可以放置在
T type的 field
或void methodName(T value)
形式的方法上。 -
它的access modified可以是任何内容,但如果不是public的,则application需要在允许 args4j 访问field/method的安全上下文中运行(请参阅
AccessibleObject.setAccessible(boolean)
)。 -
注释的行为因 T而异 — 字段的类型或方法的参数。the type of the field or the parameter of the method.
-
Boolean Switch
布尔开关
当 T 是 boolean 时,它表示一个采用“-OPT
”形式的布尔选项。设置此选项后,该属性将设置为 true。 -
String Switch
字符串开关
当 T 是 String 时,它表示一个接受一个操作数的选项。操作数的值设置为属性。 -
Enum Switch
枚举开关
当 T 从 Enum 派生时,它表示一个带有操作数的选项,该操作数必须是枚举常量之一。操作数和枚举常量名称之间的比较以不区分大小写的方式完成。
例如,以下定义将代表命令行选项,如“-coin penny
”或“-coin DIME
”,但诸如“-coin
”或“-coin abc
”之类的东西是错误的。enum Coin { PENNY,NICKEL,DIME,QUARTER }
class Option{ @Option(name="-coin") public Coin coin; }
-
File Switch
文件
当 T 是 File 时,它代表一个选项,它以文件/目录名作为操作数。
-
所需元素摘要
该注解有5个字段 其中name是必须的,其他四个是可选的.
-
String
name
名称
选项的名称,例如“-foo
”或“-bar
”。 -
可选元素摘要
-
Class <? extends OptionHandler>
handler
指定处理命令行参数的 OptionHandler。 -
String metaVar
当该选项带有操作数时,使用屏幕将显示这样的内容:
需要布尔值
指定该选项是必需的。 -
String usage
用于显示使用屏幕的帮助字符串。
例子(提供的两个链接中)
package test.args4j;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.ExampleMode;
import org.kohsuke.args4j.Option;
import org.kohsuke.args4j.spi.BooleanOptionHandler;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class