Programme Java en commande avec Apache Commons Cli

DĂ©pendance Maven

<dependencies>
   <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
      <version>1.5.0</version>
   </dependency>
</dependencies>

Exemple Apache Commons Cli

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;

public class CliApp {

  public static void main(String[] args) {

    // Toutes les options de la commande
    Options options = new Options();

    // Exemple de l'option echo
    Option echo = new Option("e", "echo", true, "Affiche le texte de l'argument");
    options.addOption(echo);

    // Exemple de l'option version
    Option version = new Option("v", "version", false, "Affiche la version du programme");
    options.addOption(version);

    // Analyseur syntaxique pour le traitement de la commande
    CommandLineParser parser = new DefaultParser();

    try {
      // La ligne de commande traitée par l'analyseur
      CommandLine cmdLine = parser.parse(options, args);

      // Récupère la valeur de l'option echo
      String echoArg = cmdLine.getOptionValue("echo");

      // Si l'argument n'est pas nul
      if (echoArg != null) {
        System.out.println(echoArg);
      }
      // Sinon si la commande a l'option version
      else if (cmdLine.hasOption(version)) {
        System.out.println("Version : 1.0");
      }

    } catch (ParseException e) {
      System.out.println(e.getMessage());

      // Imprime automatiquement l'aide pour les options dans la console
      HelpFormatter helpFormatter = new HelpFormatter();
      helpFormatter.printHelp("programme-cli", options);
    }

  }

}

Commentaires