【问题标题】:Java Cli CommandLineParserJava Cli 命令行解析器
【发布时间】:2012-07-27 02:35:32
【问题描述】:

我正在尝试使用 Java cli commanlineparser 来解析以下参数,

java -OC:\mydirectory -NMyfile

选项-O是目录,-N是文件名。

我一直在网上寻找,但找不到一个很好的例子,这就是我想要做的,

Option option = new Option()
option.addOpton("O",true, "output directory)
option.addOpton("N",true, "file name)
...
CommandLineParser parser = new BasicParser();
...
if (cmd.hasOption("O")
...

基本上,我正在尝试添加多个选项并能够解析它们。这是使用上述选项运行程序的正确方法吗?

谢谢。

【问题讨论】:

  • 你试过了吗?有问题吗?您是在使用 apache commons cli 库还是尝试自己实现它?
  • 是的,我正在使用 apache cli。我收到“UnreconginziedOptionExcepton”

标签: java command-line-arguments


【解决方案1】:

尝试以下方法:

...
Option opt1 = OptionBuilder.hasArgs(1).withArgName("output directory")
    .withDescription("This is the output directory").isRequired(true)
    .withLongOpt("output").create("O");

Option opt2 = OptionBuilder.hasArgs(1).withArgName("file name")
    .withDescription("This is the file name").isRequired(true)
    .withLongOpt("name").create("N")

Options o = new Options();
o.addOption(opt1);
o.addOption(opt2);
CommandLineParser parser = new BasicParser();

try {
  CommandLine line = parser.parse(o, args); // args are the arguments passed to the  the application via the main method
  if (line.hasOption("output") {
     //do something
  } else if(line.hasOption("name") {
     // do something else
  }
} catch(Exception e) {
  e.printStackTrace();
}
...

此外,您应该在命令行中的参数和值之间留一个空格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-26
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2011-03-19
    • 1970-01-01
    相关资源
    最近更新 更多