Вас никогда не удивляло, что за массив String[] args в параметрах метода main()?
Когда мы запускаем программу на языке Java, она может принимать информацию непосредственно из командной строки. Это открывает возможности для взаимодействия пользователя с программой, предоставляя ей различные параметры ещё до начала её выполнения. Эта функциональность достигается с использованием аргументов командной строки.
Что такое аргументы командной строки
Аргументы командной строки – это значения, передаваемые программе при её запуске через командную строку операционной системы. В Java эти значения можно использовать для настройки работы программы или передачи в неё информации. Эти аргументы ещё иногда называют параметрами командной строки.
Через эти значения Java позволяет передавать параметры в программу через командную строку. Для того, чтобы ими можно было воспользоваться в программе, метод main() и имеет такой вид:
1 |
public static void main(String[] args) |
Этот самый массив String[] args и есть параметры, или аргументы, командной строки. Что это означает на практике?
Как использовать эти аргументы в программе
Давайте напишем программу, которая принимает два параметра – имя и фамилию, и каким-нибудь образом с ними оперирует. У массивов, между делом, есть свойство length, отражающее, сколько элементов в массиве. К нему можно обратиться через имя массива, через точку написав length. После написания запустим программу, передав ей аргументы командной строки. Раньше мы запускали программы без аргументов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class FirstProject { public static void main(String[] args) { System.out.println("Идёт анализ аргументов командной строки. "); System.out.println("Всего аргументов: " + args.length); String name = args[0]; String surname = args[1]; System.out.println("Добро пожаловать, " + name + " " + surname + "!"); System.out.println("Ваше имя: " + name); System.out.println("Ваша фамилия: " + surname); System.out.println("До свидания......"); } } |
Как видно в примере, массив args активно используется в программе. Сначала мы выводим в консоль его длину, а затем обращаемся к первым двум его элементам. Что бы ни было передано в программу, она будет с этим работать таким образом.
Как передавать эти аргументы в программу
Передавать аргументы можно непосредственно в чёрной командной строке при запуске программы. В таком случае нужно дописать аргументы после имени исполняемого файла. Например:
1 |
java MyProgram аргумент1 аргумент2 аргумент3 |
В этом примере MyProgram – это созданный класс в Java, который мы хотим запустить. А параметры командной строки – аргумент1, аргумент2 и аргумент3 – аргументы, которые мы передаём программе.
Но мы воспользуемся благами среды разработки IntelliJ IDEA и зададим параметры в ней.
После того, как мы задали аргументы в соответствующее поле, нажмём кнопку Run и испытаем судьбу. Причём “Кибер” и “Котлета” расцениваются программой как два разных аргумента, так как они разделены пробелом.
Итого программа усмотрела, что аргументов передано 2, что первый – это “Кибер”, а второй – “Котлета”. Если бы мы передали меньше двух аргументов – при обращении к 1-ому индексу вывалилось бы исключение. Массив по размеру меньше, осуществляется попытка достать то, чего там нет.
Важно понимать, что аргументы командной строки всегда представлены в виде строк. Кроме того, порядок аргументов сохраняется и зависит от того, как они указаны при запуске программы.
Аргументы командной строки предоставляют возможность настройки программ в зависимости от того, какие параметры вводятся при её запуске. Нет необходимости считывать ввод прямо во время выполнения программы – сделаем это до запуска. Это довольно удобно в некоторых случаях. Например, можно передавать параметры подключения к базе данных, пути к файлам или любые другие значения, которые могут изменять поведение программы.