0

Как изменить аргументы командной строки Java

Как вы проверяете, что ваш код не содержит ошибок, что он работает во всех ситуациях и обрабатывает все пограничные случаи?

Самый простой вариант — это проверить код на всех возможных тестовых примерах. Но их может быть очень много, из-за чего сам процесс тестирования становится сложным и затратным. Нужен другой способ — который может решить задачу легко, и  который можно автоматизировать для больших входных данных. Аргументы командной строки в Java — один из таких.

В этой статье мы кратко обсудим, что такое аргументы командной строки, как они передаются и как они работают, но наше основное внимание будет сосредоточено на том, как изменять аргументы командной строки Java.

Что такое аргументы командной строки Java?

Аргументы командной строки Java позволяют передавать аргументы во время выполнения программы непосредственно из консоли, к которой будет обращаться метод main(). А также позволяет использовать их в качестве входных данных или обходить аргументы командной строки, передав значения непосредственно методу main().

Фрагмент кода:

// здесь args будет содержать аргументы командной строки
    public static void main(String[] args) {
        System.out.println("Привет, мир!");
        // оставшийся код будет здесь
    }

Как работают аргументы командной строки?

Аргументы командной строки, которые предоставляются во время выполнения, упаковываются и передаются в args[].

Args[], по сути, является массивом String, который содержит все переданные ему аргументы. Каждый из них будет храниться по индексу, начиная с args[0] и заканчивая args[n].

Как передать аргументы командной строки?

Аргументы командной строки передаются через командные строки или терминалы. Все переданные через них аргументы будут преобразованы в массив args[] внутри JVM.

Примеры

Предположим, у нас есть файл с некоторым Java-кодом.

Как передавать аргументы командной строки в java:

  1. Сохраните программу Java с расширением .java (например, Arguments.java).
  2. Откройте терминал/командную строку в каталоге, где программа хранится локально.
  3. Скомпилируйте программу Java для преобразования файла .java в .class;
    Команда: javac имя_файла.java (здесь javac Arguments.java).
  4. Запустите программу и передайте аргументы после имени файла, разделённые пробелами;
    Команда: java имя файла аргумент1 аргумент2 …. argumentsN (здесь Аргументы java).

Как получить доступ к аргументам командной строки?

Теперь давайте попробуем сейчас получить доступ ко всем переданным аргументам командной строки вJava.

Поскольку эти аргументы хранятся в массиве args[], мы можем получить к ним доступ, используя args[i], где i — это индекс, который может варьироваться от 0 до n (общее количество переданных аргументов).

Код:

Аргументы класса {
    public static void main( String[] args ) {
        System.out.println("Привет, мир!");
        // args.length используется для получения длины массива args

        System.out.println(" Общее количество аргументов: " + args.length);
        // итерация по массиву args для вывода аргументов, если они доступны

        for (int i = 0; i < args.length; i++) {
            System.out.println("Аргумент" + i + ": " + args[i]);
        }
    }
}

Выход:

Привет мир!
 Общее количество аргументов: 7
 Аргумент 0: Добро пожаловать
 Аргумент 1: в
 Аргумент 2: это
 Аргумент 3: блог
 Аргумент 4: и
 Аргумент 5: Счастливый
 Аргумент 6: Обучение

Как изменить аргументы командной строки?

Мы можем использовать args[i] для получения значения по i-му индексу. А затем, используя оператор присваивания (=), изменить аргумент по i-му индексу.

Код ниже изменит некоторые аргументы, переданные через командную строку в Java.

args[1] = "Измененный аргумент командной строки 1";
args[3] = "Измененный аргумент командной строки 2";
args[5] = "Измененный аргумент командной строки 3";

Обновлённый вывод:

Привет мир!
 Общее количество аргументов: 7
 Аргумент 0: Добро пожаловать
 Arg 1: измененный аргумент командной строки 1
 Аргумент 2: это
 Arg 3: измененный аргумент командной строки 2
 Аргумент 4: и
 Arg 5: измененный аргумент командной строки 3
 Аргумент 6: Обучение

В двух словах

  • Аргументы командной строки Java — это способ ввода данных в программу через командную строку.
  • Аргументы командной строки передаются при выполнении команды запуска сразу после имени файла и разделяются пробелами.
  • Аргументы командной строки принимаются массивом строк ( args[] ) в основной функции.
  • Мы можем получить доступ к аргументам командной строки или изменить их, используя args[i] и операторы присваивания.