我如何从'commons cli而不是'print'得到'帮助字符串'

时间:2017-06-08 04:26:18

标签: java apache-commons apache-commons-cli

我知道,以下代码将生成帮助文本并将其打印到控制台

 HelpFormatter formatter = new HelpFormatter();
 formatter.printHelp("myapp", header, options, footer, true);

但是如何将帮助文本作为String对象获取。我期待像

这样的东西
formatter.getHelp("myapp", header, options, footer, true);

CLI API中是否隐藏了任何方法?或者有没有办法获取帮助文本而不是将其打印到控制台。

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作

    HelpFormatter formatter = new HelpFormatter();

    StringWriter out = new StringWriter();
    PrintWriter pw = new PrintWriter(out);

    formatter.printHelp(pw, 80, "myapp", "test-header", opts,
            formatter.getLeftPadding(), formatter.getDescPadding(), "test-footer", true);
    pw.flush();

    System.out.println("Had usage: " + out.toString());

有关详细信息,请参阅JavaDoc