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

нет стандартного алгоритма, о котором я знаю, мой sugestion был бы следующим:

  • Создать переменную для сохранения%
  • Рассчитать сложность задачи, которую вы хотите трек (или его оценка)
  • Время от времени добавляйте приращения к%.

Вероятно, вы видели программы, в которых load bar работает намного быстрее в одной точке, чем в другой. Ну, это в значительной степени, потому что так они и делают. (хотя они, вероятно, просто помещают инкременты с регулярными интервалами в основную оболочку)

23
задан burntsugar 4 April 2009 в 00:13
поделиться

9 ответов

public class YourClass {
    public static void main(String[] args) {
        if (args.length > 0 && args[0].equals("a")){
            //...
        }
    }
}
36
ответ дан Eric Leschinski 4 April 2009 в 00:13
поделиться

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

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

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

  • POSIX-подобные опции (т.е. tar -zxvf foo.tar.gz)
  • GNU как длинные опции (т.е. du -human-readable --max- deep = 1)
  • Java-подобные свойства (т. е. java -Djava.awt.headless = true -Djava.net.useSystemProxies = true Foo)
  • Короткие опции с прикрепленным значением (т. е. gcc -O2 foo.c)
  • длинные варианты с одним дефисом (т. Е. Ant -projecthelp)
39
ответ дан Michael Myers 4 April 2009 в 00:13
поделиться

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

public static void main(String[] args) {

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

$ java myProgram a

, тогда args[0] будет содержать строку «a».

17
ответ дан user456584 4 April 2009 в 00:13
поделиться

Аргументы командной строки передаются в первом параметре 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
ответ дан Rob 4 April 2009 в 00:13
поделиться

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

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

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

public static void main(String[] args) {
    if ("a".equals(args[0])) {
         // do something
    }
}
2
ответ дан Jakub Arnold 4 April 2009 в 00:13
поделиться

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

1
ответ дан Joachim Sauer 4 April 2009 в 00:13
поделиться

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

public static void main(String str[]) {

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

    System.out.println(b);

}

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

1
ответ дан Samoth 4 April 2009 в 00:13
поделиться

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

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

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

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

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

Еще одно примечание ... «a» == «a» будет работать во многих случаях, потому что строки являются специальными в Java, но 99.9999999999999999% времени вы хотите использовать .equals.

0
ответ дан TofuBeer 4 April 2009 в 00:13
поделиться

Аргументы командной строки хранятся в виде строк в массиве 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
0
ответ дан Prudhvi Bellam 4 April 2009 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: