Я пытаюсь определить, был ли введен "a" в качестве первого строкового аргумента.
Аргументы командной строки Java
Ответ 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