Как "получить" строку справки из обыкновенного кли, а не "печатать"

Я знаю, приведенный ниже код будет генерировать и печатать текст справки в консоли

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

но как я могу получить текст справки как String объект. Я ожидаю что-то вроде

formatter.getHelp("myapp", header, options, footer, true);

Есть ли какой-то метод, скрытый в CLI API? или есть ли способ получить текст справки вместо того, чтобы печатать его на консоли.

1 ответ

Решение

Вы можете сделать следующее

    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 для деталей.

Другие вопросы по тегам