Java Language Traitement des arguments à l'aide de GWT ToolBase


Exemple

Si vous voulez analyser des arguments de ligne de commande plus complexes, par exemple avec des paramètres facultatifs, il est préférable d'utiliser l'approche GWT de Google. Toutes les classes sont publiques à:

https://gwt.googlesource.com/gwt/+/2.8.0-beta1/dev/core/src/com/google/gwt/util/tools/ToolBase.java

Un exemple de traitement de la ligne de commande myprogram -dir "~/Documents" -port 8888 est:

public class MyProgramHandler extends ToolBase {
   protected File dir;
   protected int port;
   // getters for dir and port
   ...

   public MyProgramHandler() {
       this.registerHandler(new ArgHandlerDir() {
            @Override
            public void setDir(File dir) {
                this.dir = dir;
            }
       });
       this.registerHandler(new ArgHandlerInt() {
            @Override
            public String[] getTagArgs() {
               return new String[]{"port"};
            }
            @Override
            public void setInt(int value) {
               this.port = value;
            }
       });
   }
   public static void main(String[] args) {
      MyProgramHandler myShell = new MyProgramHandler();
      if (myShell.processArgs(args)) {
         // main program operation
         System.out.println(String.format("port: %d; dir: %s",
            myShell.getPort(), myShell.getDir()));
      }
      System.exit(1);
   }
}

ArgHandler également une méthode isRequired() qui peut être écrasée pour indiquer que l'argument de ligne de commande est requis (le retour par défaut est false pour que l'argument soit facultatif).