Parsing della riga di comando in Java con JOpt

Mattepuffo's logo
Parsing della riga di comando in Java con JOpt

Parsing della riga di comando in Java con JOpt

Ecco un'altra libreria per il parsing della riga di comando in Java: JOpt!

Molto semplice da usare, forse più di altre; ma forse anche meno flessibile e completa.

Però non mi dispiace, soprattutto se vogliamo qualcosa di semplice e da creare al volo.

Se usate Maven aggiungete questa dipendenza:

        <dependency>
            <groupId>net.sf.jopt-simple</groupId>
            <artifactId>jopt-simple</artifactId>
            <version>5.0.4</version>
        </dependency>

Ecco un esempio:

import java.io.IOException;
import java.util.Arrays;
import joptsimple.OptionParser;
import joptsimple.OptionSet;

public class Main {

    public static void main(String[] args) throws IOException {
        OptionParser optionParser = new OptionParser();
        String[] fileOptions = {"n", "nome"};
        optionParser.acceptsAll(Arrays.asList(fileOptions), "Nome utente")
                .withRequiredArg().required();
        String[] verboseOptions = {"v", "verbose"};
        optionParser.acceptsAll(Arrays.asList(verboseOptions), "Modalità verbosa");
        String[] helpOptions = {"h", "help"};
        optionParser.acceptsAll(Arrays.asList(helpOptions), "Help").forHelp();

        String[] arguments = {"-n", "Mattepuffo"};
//        String[] arguments = {"-n", "Mattepuffo", "-v"};
//        String[] arguments = {"-v"};
        OptionSet options = optionParser.parse(arguments);
        System.out.println("Nome: " + options.valueOf("n") + ";Verbosità: "
                + options.has("v"));
        optionParser.printHelpOn(System.out);
    }

}

Fate le prove con tutti i possibili agromenti (vi ho messo gli esempi commentati).

L'help che compare con printHelpOn, mostra anche i campi obbligatori (con un asterisco).

L'obbligatorietà l'abbiamo impostata dentro al metodo acceptsAll.

Questo metodo permette di associare più flag ad una singola opzione (-n e -nome ad esempio).

Fate qualche prova.

Enjoy!


Condividi

Commentami!