Аргументы командной строки в Java - доступ и сопоставление с типами данных

Введение Аргументы (параметры) командной строки - это строки текста, используемые для передачи дополнительной информации программе, когда приложение запускается через интерфейс командной строки [https://en.wikipedia.org/wiki/Command-line_interface] (CLI) операционная система. В этом руководстве мы получим доступ к аргументам (параметрам), переданным в основной метод приложения Java, и прочитаем их. Мы также сопоставим их с разными типами данных, чтобы мы могли обрабатывать их и изменять поток кода.

Вступление

Аргументы (параметры) командной строки - это строки текста, используемые для передачи дополнительной информации программе, когда приложение запускается через интерфейс командной строки (CLI) операционной системы.

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

Доступ к аргументам командной строки

Отправной точкой для каждой программы на Java является метод main() :

 public static void main(String[] args) { 
 // Do something 
 } 

Аргументы, переданные программе при ее инициализации, хранятся в массиве args В качестве альтернативы Java также поддерживает vararg в этом месте:

 public static void main(String... args) { 
 // Do something 
 } 

При этом мы можем легко получить доступ к каждому аргументу, переданному в этот метод. Начнем с их распечатки по очереди:

 public class Main { 
 public static void main(String[] args) { 
 for (int i = 0; i < args.length; i++) 
 System.out.println(String.format("Argument %d: %s", i, args[i])); 
 } 
 } 

Затем мы скомпилируем этот файл .java

 javac Main.java 

После этого мы можем запустить его:

 java Main Hello World 

Это приводит к:

 Argument 0: Hello 
 Argument 1: World 

Сопоставление аргументов с типами данных

Сами аргументы представляют собой массив строк. Итак, на самом деле все, что мы передаем, - это String. Хотя мы также можем преобразовывать строки в разные типы данных:

 java Main Hello 15 true 

Это распечатывает:

 Argument 0: Hello 
 Argument 1: 15 
 Argument 2: true 

Скажем, мы хотели разрешить пользователям печатать строку заданное количество раз и иметь флаг, который переключает сообщение журнала, отображающее номер итерации. Таким образом, приведенные выше аргументы будут выводить Hello 15 раз с сообщением журнала для каждого оператора print()

Давайте сделаем это:

 public class Main { 
 public static void main(String[] args) { 
 
 String s = ""; 
 int n = 0; 
 boolean flag = false; 
 
 try { 
 s = args[0]; 
 } catch (Exception e) { 
 System.out.println("The first argument must be present."); 
 System.exit(1); 
 } 
 try { 
 n = Integer.parseInt(args[1]); 
 } catch (NumberFormatException e) { 
 System.out.println("The second argument must be an integer."); 
 System.exit(1); 
 } 
 
 try { 
 flag = Boolean.parseBoolean(args[2]); 
 } catch (Exception e) { 
 System.out.println("The third argument must be parseable to boolean."); 
 System.exit(1); 
 } 
 
 for (int i = 0; i < n; i++) { 
 System.out.println(s); 
 if (flag) 
 System.out.println(String.format("Iteration %d", i)); 
 } 
 } 
 } 

Теперь давайте снова скомпилируем код:

 javac Main.java 

А затем запустим его без аргументов:

 java Main 

Нас встречают:

 The first argument must be present. 

Если мы приведем аргументы:

 java Main Hello 5 true 

Нас встретят:

 Hello 
 Iteration 0 
 Hello 
 Iteration 1 
 Hello 
 Iteration 2 
 Hello 
 Iteration 3 
 Hello 
 Iteration 4 

Установка аргументов в IDE

Это предполагает, что вы запускаете код через командную строку, что не всегда так. Большинство людей используют IDE для работы над своими проектами, вместо этого у них есть удобная кнопка «Выполнить».

К счастью, вы можете указать IDE передать эти аргументы в вызов run. Вот примеры того, как это можно сделать с помощью некоторых популярных IDE:

Затмение

В разделе «Выполнить» -> «Выполнить конфигурации» :

Аргументы набораEclipse{.ezlazyload}

IntelliJ

В разделе «Выполнить» -> «Изменить конфигурации» :

IntelliJ Установкааргументов{.ezlazyload}

Заключение

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

Затем мы сопоставили переданные аргументы с разными типами данных и обработали их соответствующим образом. Имея это в виду, легко создавать простые инструменты CLI и изменять поток кода на основе переданных аргументов.

comments powered by Disqus