gpt4 book ai didi

java - 使用 commons-cli 解析命令行时的同义词

转载 作者:行者123 更新时间:2023-12-04 20:16:21 24 4
gpt4 key购买 nike

我正在尝试使用 apache commons-cli 来解析传递给 java 命令行实用程序的命令行参数。

有没有办法让“-r”和“-R”都表示“递归子目录”而不向解析器添加 2 个选项(这会弄乱用法打印输出)。

一些代码:

Options options = new Options();
options.addOption("r", "recurse", false,"recurse subdirectories");
CommandLineParser parser = new BasicParser();
CommandLine cmd = null;

try {
cmd = parser.parse( options, args);

} catch (ParseException e) {
e.printStackTrace();
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("readfiles", options);
}

最佳答案

此选项目前不作为 commons-cli 的一部分存在。
现在必须这样做:

public static void main( String[] args )
{
Options options = new Options();
options.addOption("v", "version", false, "Run with verbosity set to high")
.addOption("h", "help", false, "Print usage")
.addOption("r", "recurse", false, "Recurse subdirectories")
.addOption("R", false, "Same as --recurse");

CommandLine cmd = null;
CommandLineParser parser = new PosixParser();
try {
cmd = parser.parse(options, args);
} catch (ParseException e) {
e.printStackTrace();
}

HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("cmdline-parser [OPTIONS] [FILES]", options);

}

生成的使用信息是:

usage: cmdline-parser [OPTIONS] [FILES] -h,--help      Print usage -r,--recurse   Recurse subdirectories -R             Same as --recurse -v,--version   Run with verbosity set to high

关于java - 使用 commons-cli 解析命令行时的同义词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24805626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com