Parsing della riga di comando in Java con args4j
args4j è una delle varie librerie per eseguire il parsing della riga di comando in Java.
Se usate Maven aggiungete questo al vostro pom.xml:
<dependency>
<groupId>args4j</groupId>
<artifactId>args4j</artifactId>
<version>2.33</version>
</dependency>
Fatto questo vediamo un esempio basico:
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.Option;
public class Main {
@Option(name = "-n", aliases = "--nome", usage = "Nome bbligatorio!", required = true)
private String nome;
@Option(name = "-v", aliases = "--verbose", usage = "Modalità verbosa")
private boolean verbose;
private void parser(String[] args) {
try {
final CmdLineParser parser = new CmdLineParser(this);
if (args.length < 1) {
parser.printUsage(System.out);
System.exit(0);
}
parser.parseArgument(args);
} catch (CmdLineException ex) {
System.out.println(ex.getMessage());
}
System.out.println(nome);
System.out.println(verbose);
}
public static void main(String[] args) {
String[] myArgs = {};
// String[] myArgs = {"-n", "Mattepuffo"};
// String[] myArgs = {"-n", "Mattepuffo", "-v"};
Main m = new Main();
m.parser(myArgs);
}
}
Per semplicità usaremo una variabile che contiene gli arogmenti sotto forma di array.
Ci sono tre esempi:
- nel primo passiamo un array vuoto
- nel secondo solo il nome
- nel terzo entrambe le opzioni
Lanciatalo con tutti e tre gli esempi per vedere le differenze.
Come potete notare è abbastanza semplice da usare, e abbastanza flessibile.
Il menu di help è compreso nella libreria, e in pratica corrisponde al metodo printUsage.
Enjoy!
java args4j maven printusage
Commentami!