【问题标题】:Options in command line of Java jar fileJava jar 文件命令行中的选项
【发布时间】:2017-07-31 10:50:07
【问题描述】:

我试图四处搜索,但没有看到合适的文档显示如何做,所以我发布了这个。

我想在我的 jar 文件中调用一个函数来处理命令行中给出的字符串,例如:

java -jar myFile.jar -s "This is the string I want to process"

用到的代码如下:

Option inputStringOpt = new Option("s", "Input string");
options.addOption(inputStringOpt);
try {
     CommandLine commandLine = commandLineParser.parse(options, args);
     String inputString = commandLine.getOptionValue("s");
     //Call the required function
     someFunction(inputString);
}
catch (ParseException e) {
    System.err.println("Error: " + e.getMessage());
}

但是,inputString 始终为空。如何读取所需的字符串?

有关更多信息,它会使用 StringReader 抛出 NullPointerException。

谢谢。

【问题讨论】:

  • 参数是否显示在args中?
  • OptionCommandLine 的类来自哪里,某个库?它们不是标准的 Java API 类。
  • 是的,它们来自库,我将它们包含在 jar 文件中。
  • 哪个库?如果您需要有关问题的帮助,请提供所有相关信息。
  • @Jesper 他们来自 commons-cli

标签: java input nullpointerexception apache-commons-cli stringreader


【解决方案1】:

你的第一行应该是:

Option inputStringOpt = new Option("s", true, "Input string");

【讨论】:

  • “true”选项是否意味着必须提供字符串?
  • @Hoai 表示“s”选项有参数
  • @MauricePerry 你怎么知道的?他甚至没有告诉我们 Option 类来自哪里以及它的 API 是什么。
  • @Jesper 是的,他做到了,在帖子下方的评论中。它来自 common-cli。
  • 工作就像一个魅力。非常感谢@MauricePerry。已投票!
猜你喜欢
  • 2015-06-13
  • 2018-07-30
  • 2012-01-01
  • 2021-01-11
  • 1970-01-01
  • 2023-04-02
  • 2010-10-31
  • 1970-01-01
  • 2020-01-07
相关资源
最近更新 更多