Подтвердить что ты не робот

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

Я пытаюсь определить, был ли введен "a" в качестве первого строкового аргумента.

4b9b3361

Ответ 1

public class YourClass {
    public static void main(String[] args) {
        if (args.length > 0 && args[0].equals("a")){
            //...
        }
    }
}

Ответ 2

Используйте apache commons cli, если вы планируете продлить это за один аргумент.

"Библиотека CLI Apache Commons предоставляет API для анализа параметров командной строки, передаваемых программам, а также позволяет печатать справочные сообщения с подробными параметрами, доступными для инструмента командной строки".

Commons CLI поддерживает различные типы параметров:

  • Параметры, подобные POSIX (например, tar -zxvf foo.tar.gz)
  • GNU как длинные параметры (т.е. du --human-readable --max-depth = 1)
  • Свойства, подобные Java (например, java -Djava.awt.headless = true -Djava.net.useSystemProxies = true Foo)
  • Короткие опции со значением (gcc -O2 foo.c)
  • длинные опции с одним дефем (т.е. ant -projecthelp)

Ответ 3

Каждая программа Java начинается с

public static void main(String[] args) {

Этот массив типа String, который main() принимает в качестве параметра, содержит аргументы командной строки для вашей программы. Если пользователь запускает вашу программу как

$ java myProgram a

то args[0] будет содержать строку "a".

Ответ 4

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

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

В приведенном выше примере args содержит все аргументы командной строки.

Короткий, сладкий ответ на поставленный вопрос:

public static void main( String[] args ) {
    if( args.length > 0 && args[0].equals( "a" ) ) {
        // first argument is "a"
    } else {
        // oh noes!?
    }
}

Ответ 5

Аргументы командной строки доступны с помощью параметра String[] args метода main.

Для первого аргумента вы можете проверить args[0]

весь код будет выглядеть как

public static void main(String[] args) {
    if ("a".equals(args[0])) {
         // do something
    }
}

Ответ 6

Ваш метод main имеет аргумент String[]. Это содержит аргументы, которые были переданы вашим приложениям (он часто называется args, но это не является обязательным требованием).

Ответ 7

Попробуйте передать значение a и сравните с помощью метода equals следующим образом:

public static void main(String str[]) {

    boolean b = str[0].equals("a");

    System.out.println(b);

}

Перейдите по этой ссылке, чтобы узнать больше о Аргумент командной строки в Java

Ответ 8

Как все сказали... метод .equals - это то, что вам нужно.

В случайном случае вы использовали что-то вроде:

if(argv[0] == "a")

то это не работает, потому что == сравнивает расположение двух объектов (физическое равенство), а не содержимое (логическое равенство).

Так как "a" из командной строки и "a" в источнике для вашей программы выделены в двух разных местах, то использовать == нельзя. Вы должны использовать метод equals, который будет проверять, чтобы обе строки имели одинаковые символы.

Другое примечание... "a" == "a" будет работать во многих случаях, потому что Strings являются специальными в Java, но 99.99999999999999% времени, которое вы хотите использовать .equals.

Ответ 9

Аргументы командной строки сохраняются как строки в массиве String String[] args that is passed to main() `.

java [program name] [arg1,arg2 ,..]

Аргументы командной строки - это входы, которые принимают из командной строки во время запуска программы. Пропускаемые аргументы могут быть любыми. Что хранится в массиве args[].

//Display all command line information
         class ArgDemo{
            public static void main(String args[]){
            System.out.println("there are "+args.length+"command-line arguments.");
            for(int i=0;i<args.length;i++)
            System.out.println("args["+i+"]:"+args[i]);
    }
    }

Пример:

java Argdemo one two

Выход будет:

there are 2 command line arguments:
they are:
arg[0]:one
arg[1]:two