В настоящее время я использую библиотеку Apache Commons CLI 1.3.1
для анализа аргументов командной строки и управления потоком выполнения в исполняемом банке. До сих пор все было довольно просто, и документация и страницы примеры использования были относительно подробными и полезными.
Однако мне все еще не ясно, как использовать эту библиотеку для обнаружения отсутствия каких-либо аргументов или параметров. Я хотел бы обнаружить это условие, а затем распечатать заявление об использовании/помощи. Я обошел это, просто проверив длину массива аргументов, но я хотел бы знать, есть ли в библиотеке способ обнаружения этого условия без проверки наличия каждой опции.
Вот мой код с оставшимся обходным путем:
public static void main(String[] args)
{
try
{
// create Options object
Options options = new Options();
// add t option
options.addOption("t", false, "display current time");
options.addOption("help", false, "print this message");
CommandLineParser parser = new DefaultParser();
CommandLine cmd = parser.parse(options, args);
if(cmd.hasOption("t")) {
log.debug("Received option t");
// Do something
}
if (args.length <= 0 || cmd.hasOption("help"))
{
// automatically generate the help statement
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp( "java -jar Client.jar <option> <arguments>", options);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
cmd.getArgs().length
14.11.2016client.jar -t
14.11.2016