Parsing della riga di comando in Java con CmdOption
Oggi vediamo una libreria per il parsing della riga di comando in Java un pò differente rispetto agli ultimi: CmdOption!
Se usate Maven:
A questo creiamo una classe di configurazione, in cui impostiamo le opzioni:
import de.tototec.cmdoption.CmdOption;
public class CmdConfig {
@CmdOption(names = {"--nome", "-n"}, description = "Il tuo nome",
minCount = 1, args = {"Nome"})
String nome;
@CmdOption(names = {"--verbose", "-v"}, description = "Be more verbose",
maxCount = 0)
boolean verbose;
@CmdOption(names = {"--help", "-h"}, description = "Help", isHelp = true)
boolean help;
}
Poi nel main:
import de.tototec.cmdoption.CmdlineParser;
public class Main {
public static void main(String[] args) {
String[] arguments = {"-n", "Mattepuffo"};
//String[] arguments = {"-n", "Mattepuffo", "-v"};
//String[] arguments = {"-v"};
//String[] arguments = {"-h"};
CmdConfig config = new CmdConfig();
CmdlineParser parser = new CmdlineParser(config);
parser.parse(arguments);
if (config.help) {
parser.usage();
}
System.out.println("Il tuo nome: " + config.nome + ";
Verbosità: " + config.verbose);
}
}
Intercettiamo l'opzione -h per visualizzare l'help.
Nel caso in cui non passiamo -n, il programma andrà in eccezione, in quanto opzione "richiesta".
Ma l'eventuale eccezione dobbiamo gestirla a mano; la libreria non ha strumenti di default per le gestione di questi errori (o almeno io non ho trovato nulla al riguardo).
Enjoy!
java cmdoption cmdlineparser
Commentami!