Как принимать аргумент с командной строки во время работы приложения?

В Java есть несколько способов принять аргумент с командной строки во время работы приложения:

1. Использование массива String[] args в методе main():

public class Main {
  public static void main(String[] args) {
    // Ваш код здесь
  }
}

Аргументы, переданные в командной строке, будут автоматически сохранены в массиве args.

2. Использование класса Scanner:

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    
    System.out.println("Введите аргумент:");
    String arg = scanner.next();
    
    // Ваш код здесь
  }
}

В данном случае программа будет ждать, пока пользователь введет аргумент в командной строке, и затем сохранит его в переменную arg.

3. Использование класса BufferedReader:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    
    System.out.println("Введите аргумент:");
    try {
      String arg = reader.readLine();
      
      // Ваш код здесь
      
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Таким образом, программа будет ждать, пока пользователь введет аргумент в командной строке, и затем сохранит его в переменную arg.

4. Использование библиотеки Apache Commons CLI:
Apache Commons CLI предоставляет более гибкую и мощную функциональность для работы с аргументами командной строки. Чтобы использовать эту библиотеку, вы должны добавить зависимость в ваш проект:

<dependency>
  <groupId>commons-cli</groupId>
  <artifactId>commons-cli</artifactId>
  <version>1.4</version>
</dependency>

Пример использования Options и CommandLineParser:

import org.apache.commons.cli.*;

public class Main {
  public static void main(String[] args) {
    Options options = new Options();
    options.addOption("arg", true, "Описание аргумента");

    CommandLineParser parser = new DefaultParser();
    try {
      CommandLine cmd = parser.parse(options, args);

      String arg = cmd.getOptionValue("arg");

      // Ваш код здесь
      
    } catch (ParseException e) {
      e.printStackTrace();
    }
  }
}

В данном примере мы добавляем опцию -arg, которая может принимать значение. Затем мы парсим аргументы командной строки и получаем значение опции -arg.