нет стандартного алгоритма, о котором я знаю, мой sugestion был бы следующим:
Вероятно, вы видели программы, в которых load bar работает намного быстрее в одной точке, чем в другой. Ну, это в значительной степени, потому что так они и делают. (хотя они, вероятно, просто помещают инкременты с регулярными интервалами в основную оболочку)
public class YourClass {
public static void main(String[] args) {
if (args.length > 0 && args[0].equals("a")){
//...
}
}
}
Используйте apache commons cli , если вы планируете расширить это на один аргумент.
«Библиотека Apache Commons CLI предоставляет API для анализа параметров командной строки, передаваемых программам. Она также может печатать справочные сообщения с подробным описанием параметров, доступных для инструмента командной строки».
Commons CLI поддерживает различные типы из опций:
Каждая Java-программа начинается с
public static void main(String[] args) {
Этот массив типа String
, который main()
принимает в качестве параметра, содержит аргументы командной строки для вашей программы. Если пользователь запускает вашу программу как
$ java myProgram a
, тогда args[0]
будет содержать строку «a».
Аргументы командной строки передаются в первом параметре 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!?
}
}
Аргументы командной строки доступны через параметр String[] args
метода main
.
Для первого аргумента вы можете проверить args[0]
весь код будет выглядеть как
public static void main(String[] args) {
if ("a".equals(args[0])) {
// do something
}
}
Ваш метод main
имеет аргумент String[]
. Они содержат аргументы, которые были переданы вашим приложениям (часто это называется args
, но это не обязательно).
Попробуйте передать значение a и сравнить, используя метод equals следующим образом:
public static void main(String str[]) {
boolean b = str[0].equals("a");
System.out.println(b);
}
Перейдите по этой ссылке, чтобы узнать больше о Аргумент командной строки в Java
Как все говорили ... метод .equals - это то, что вам нужно.
В случайном случае вы использовали что-то вроде:
if(argv[0] == "a")
, тогда это не работает, потому что == сравнивает расположение двух объектов (физическое равенство), а не содержимое (логическое равенство) ).
Поскольку «a» из командной строки и «a» в исходном тексте вашей программы расположены в двух разных местах, == использовать нельзя. Вы должны использовать метод equals, который проверит, чтобы обе строки имели одинаковые символы.
Еще одно примечание ... «a» == «a» будет работать во многих случаях, потому что строки являются специальными в Java, но 99.9999999999999999% времени вы хотите использовать .equals.
Аргументы командной строки хранятся в виде строк в массиве 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