Pages

14.03.13

Для чего нужны аргументы командной строки String args[] в методе main?

Метод main() указывает интерпретатору класс, с которого нужно начать выполнение программы. Однако в языке Java разрешено использовать несколько методов с названием main() даже в одном классе. Поэтому по-настоящему главный метод содержит аргументы командной строки (String[] args).

Пример:............................................................................................................................................

public class Testmain {
    public static void main(String[] args) {
   
        if(args.length > 0)  //если через консоль были введены аргументы
        System.out.println(args[0]);  //то вывести на консоль первый элемент из массива
       
        else //иначе —
        Testmain obj = new Testmain(); //создать объект
        obj.main(); //и использовать обычный метод с названием main()
        }
    }
   
    public static void main() {  //это обычный метод с названием main()
    System.out.println("it's usual main method without String[] args!");
    }
}
..........................................................................................................................................................


В командной строке консоли после команды java Testmain было введено три аргумента: 1 2 3. В программе строка System.out.println(args[0]); выводит на консоль первый аргумент массива args[0], в данном случае выведено 1.
Если же аргументы не были указаны через консоль, то выполняется блок оператора else, в котором вызывается обычный метод, но тоже названный main().


Дополнительная информация:
args в методе main() — это название массива String[] и оно может быть другим.

Пример:............................................................................................................................................

public class Testmain2 {
    public static void main(String[] lalala) {
  
        if(lalala.length > 0)  //если через консоль были введены аргументы
        System.out.println(lalala[0]);  //то вывести на консоль первый элемент из массива
      
        else//иначе —
        Testmain2 obj = new Testmain2(); //создать объект
        obj.main(); //и использовать обычный метод с названием main()
        }
    }

    public static void main() {  //это обычный метод с названием main()
    System.out.println("it's usual main method without String[] lalala!");
    }
}
..........................................................................................................................................................

2 коментарі:

  1. Вроде для статических методот нужен не объект, а класс:

    Вместо obj.main(); нужно Testmain2.main()

    ВідповістиВидалити
  2. Да, при статическом методе можно вместо
    Testmain2 obj = new Testmain2(); //создать объект
    obj.main();
    написать просто Testmain2.main();

    будет работать в обоих вариантах.

    ВідповістиВидалити