CLI Apache Commons - Option Propriétés

Une option Propriétés est représentée sur une ligne de commande par son nom et ses propriétés correspondantes comme la syntaxe, qui est similaire au fichier de propriétés java. Prenons l'exemple suivant, si nous transmettons des options telles que -DrollNo = 1 -Dclass = VI -Dname = Mahesh, nous devons traiter chaque valeur comme des propriétés. Voyons la logique de mise en œuvre en action.

Exemple

CLITester.java

import java.util.Properties;

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

public class CLITester {
   public static void main(String[] args) throws ParseException {
      Options options = new Options();
      Option propertyOption = Option.builder()
         .longOpt("D")
         .argName("property=value" )
         .hasArgs()
         .valueSeparator()
         .numberOfArgs(2)
         .desc("use value for given properties" )
         .build();
      
      options.addOption(propertyOption);
      CommandLineParser parser = new DefaultParser();
      CommandLine cmd = parser.parse( options, args);
      
      if(cmd.hasOption("D")) {
         Properties properties = cmd.getOptionProperties("D");
         System.out.println("Class: " + properties.getProperty("class"));
         System.out.println("Roll No: " + properties.getProperty("rollNo"));
         System.out.println("Name: " + properties.getProperty("name"));
      }
   }
}

Production

Exécutez le fichier, tout en passant les options sous forme de paires clé / valeur et voyez le résultat.

java CLITester -DrollNo = 1 -Dclass = VI -Dname = Mahesh
Class: VI
Roll No: 1
Name: Mahesh