2 votes

pas capable d'analyser une option facultative en java

J'ai le code suivant :

public static void main(String [] args) throws ParseException{

    Options options = new Options();
    options.addOption("g", "delimiter", false, "default delim is ,");

    CommandLineParser parser = new PosixParser();
    CommandLine cmd = parser.parse(options, args);
    String input = cmd.getOptionValue("g");
    System.out.println(input);

}

Dans ma configuration d'exécution, j'ai ces args

-g @

Ce que je m'attends à voir, c'est "@" mais le résultat est null ?

Qu'est-ce que je manque ? Merci d'avance pour votre réponse.

1voto

Jitendra Points 1380

Puisque votre g nécessite un argument, changer le troisième paramètre de l'option de false a true œuvre.

options.addOption("g", "delimiter", true, "default delim is ,");

Je suis passé de false a true puisque l'option g nécessite un argument s'il est passé en ligne de commande. Cela fonctionne alors très bien.

Ceci est tiré de leur documentation java

La méthode addOption a trois paramètres. Le premier paramètre est une chaîne de caractères java.lang.String qui représente l'option. Le deuxième paramètre est un booléen qui spécifie si l'option nécessite un argument ou non. Dans le cas d'une option booléenne (parfois appelée "drapeau"), la valeur de l'argument n'est pas présente et false est transmis. Le troisième paramètre est la description de l'option. Cette description sera utilisée dans le texte d'utilisation de l'application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X