gpt4 book ai didi

java - Apache Common CLI 无法识别选项

转载 作者:搜寻专家 更新时间:2023-11-01 01:44:01 24 4
gpt4 key购买 nike

我尝试使用 Common CLI 解析简单的参数,但收到 ParseException。

这是我的代码:

@SuppressWarnings("static-access")
public class CmdParsingTest {
private static final Options options;

static {
options = new Options();
options.addOption(OptionBuilder.withLongOpt("schema-file")
.withDescription("path to schema file")
.hasArg()
.withArgName("schemaFile")
.create("source"));
options.addOption( OptionBuilder.withLongOpt("state-url")
.withDescription("state url")
.hasArg()
.withArgName("stateUrl")
.create("url"));
options.addOption( OptionBuilder.withLongOpt("update-number")
.withDescription("update number to start from")
.hasArg()
.withArgName("updateNum")
.create("update"));
options.addOption(OptionBuilder.withLongOpt("result-file")
.withDescription("use given file to save result")
.hasArg()
.withArgName("resultFile")
.create("result"));
}

public static void main(String[] args) {
args = new String[]{
"-source /home/file/myfile.txt",
"-url http://localhost/state",
"-result result.txt"};
// create the parser
CommandLineParser parser = new BasicParser();
try {
// parse the command line arguments
CommandLine cmd = parser.parse(options, args);
//other cool code...
}
catch( ParseException exp ) {
System.err.println( "Parsing of command line args failed. Reason: " + exp.getMessage() );
}
}
}

结果是:

Parsing of command line args failed. Reason: Unrecognized option: -source /home/file/myfile.txt

如果我使用不带破折号的 args,则不会抛出异常,但 cmd.hasOption("source") 返回 false。

P.S> 使用示例建议使用 DefaultParser,但它只会出现在 CLI 1.3 中(根据 1.3 JavaDoc)。

最佳答案

改变

    args = new String[]{
"-source /home/file/myfile.txt",
"-url http://localhost/state",
"-result result.txt"};

    args = new String[]{
"-source", "/home/file/myfile.txt",
"-url", "http://localhost/state",
"-result", "result.txt"};

第二个是 JVM 如何将命令行参数打包/传递给您的 main 方法,这也是 commons-cli 所期望的。

关于java - Apache Common CLI 无法识别选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17448911/

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