Apache Commons CLI - Argument Option

Opcja argumentu jest reprezentowana w wierszu poleceń przez swoją nazwę i odpowiadającą jej wartość. Na przykład, jeśli opcja jest obecna, to użytkownik musi przekazać jej wartość. Rozważmy następujący przykład, jeśli drukujemy logi do jakiegoś pliku, dla którego chcemy, aby użytkownik wprowadził nazwę pliku dziennika z argumentem opcja logFile.

Przykład

CLITester.java

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;

public class CLITester {
   public static void main(String[] args) throws ParseException {
      Options options = new Options();
      Option logfile = Option.builder()
         .longOpt("logFile")
         .argName("file" )
         .hasArg()
         .desc("use given file for log" )
         .build();

      options.addOption(logfile);
      CommandLineParser parser = new DefaultParser();
      CommandLine cmd = parser.parse( options, args);
      
      // has the logFile argument been passed?
      if(cmd.hasOption("logFile")) {
         //get the logFile argument passed
         System.out.println( cmd.getOptionValue( "logFile" ) );
      }
   }
}

Wynik

Uruchom plik, przekazując --logFile jako opcję, nazwę pliku jako wartość opcji i zobacz wynik.

java CLITester --logFile test.log
test.log