Как запустить входные данные в Linux при запуске приложения Java в команде? [Дубликат]

Вообще говоря, они выполняют ту же работу. Тем не менее, нотация в виде скобок дает вам возможность делать то, что вы не можете сделать с точечной нотацией, например

var x = elem["foo[]"]; // can't do elem.foo[];

. Это можно расширить до любого свойства, содержащего специальные символы.

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

9 ответов

public class YourClass {
    public static void main(String[] args) {
        if (args.length > 0 && args[0].equals("a")){
            //...
        }
    }
}
31
ответ дан Eric Leschinski 26 August 2018 в 07:57
поделиться

Аргументы командной строки сохраняются как строки в массиве 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
ответ дан Hanlak 26 August 2018 в 07:57
поделиться
  • 1
    В вашем примере, что означает первая строка javastack.java.? Я точно не знаю, к чему относится It в It's used to accept input from the command prompt while running the program., но последовательность 1) команда синтаксического анализа 2) параметры настройки 3) запустить программу. Я не знаю точно, что относится к This в This essentially speeds up the program execution when the program depends on user input., но в параметре, проходящем , в не происходит ускорения выполнения программы . – greybeard 18 December 2016 в 19:28

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

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

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

public static void main(String[] args) {
    if ("a".equals(args[0])) {
         // do something
    }
}
2
ответ дан Jakub Arnold 26 August 2018 в 07:57
поделиться

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

1
ответ дан Joachim Sauer 26 August 2018 в 07:57
поделиться

Используйте 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)
  • long options с одним дефеном (т. е. ant-project)
38
ответ дан Michael Myers 26 August 2018 в 07:57
поделиться

Аргументы командной строки передаются в первом параметре 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 26 August 2018 в 07:57
поделиться

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

public static void main(String str[]) {

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

    System.out.println(b);

}

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

1
ответ дан Samoth 26 August 2018 в 07:57
поделиться

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

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

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

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

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

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

0
ответ дан TofuBeer 26 August 2018 в 07:57
поделиться

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

public static void main(String[] args) {

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

$ java myProgram a

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

17
ответ дан user456584 26 August 2018 в 07:57
поделиться
Другие вопросы по тегам:

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