2009-04-04 29 views

Odpowiedz

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

Twoja metoda main ma argument . Zawierają argumenty, które zostały przekazane do twoich aplikacji (często nazywa się to args, ale nie jest to wymagane).

5

argumenty poleceń linii przechodzą w pierwszym String[] parametru main(), np

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

W powyższym przykładzie args zawiera wszystkie argumenty polecenia linii.

Krótki, słodkie odpowiedź na postawione pytanie brzmi: Argumenty wiersza

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

poleceń są dostępne za pośrednictwem String[] args parametru main metody.

Do pierwszego argumentu można sprawdzić args[0]

cały kod będzie wyglądać

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

Każdy Java zaczyna

public static void main(String[] args) { 

tej tablicy typu String że main() przyjmuje jako parametr przechowuje argumenty wiersza poleceń do twojego programu. Jeżeli użytkownik uruchomi program jako

$ java myProgram a 

następnie args[0] będzie utrzymać ciąg „A”.

0

Jak wszyscy inni mówili ... metoda .equals jest tym, czego potrzebujesz.

w off szansa stosować coś takiego:

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

to nie działa, ponieważ == porównuje lokalizację dwóch obiektów (równość fizyczna), a nie treści (logiczne równości).

Ponieważ "a" z wiersza poleceń i "a" w źródle dla twojego programu są przydzielane w dwóch różnych miejscach, nie można użyć ==. Musisz użyć metody równości, która sprawdzi, czy oba łańcuchy mają te same znaki.

Inna uwaga ... "a" == "a" będzie działać w wielu przypadkach, ponieważ ciągi znaków są specjalne w Javie, ale 99,99999999999999% czasu, którego chcesz użyć .equals.

37

Skorzystaj z apache commons cli, jeśli zamierzasz przedłużyć poprzedni pojedynczy argument.

"Biblioteka Apache Commons CLI udostępnia interfejs API do analizowania opcji wiersza poleceń przekazywanych do programów, a także umożliwia drukowanie komunikatów pomocy z opcjami dostępnymi dla narzędzia wiersza poleceń."

Commons CLI obsługuje różne rodzaje opcji:

  • POSIX jak opcji (tj. Smoła zxvf foo.tar.gz)
  • GNU jak długie opcji (tj du --human-czytelny. --max-depth = 1)
  • Java jak właściwości (np. Java -Djava.awt.headless = true -Djava.net.useSystemProxies = true foo)
  • krótkich opcji o wartości dołączone (tj. gcc -O2 foo.c)
  • długie opcje z pojedynczym łącznikiem (np. ant -projec thelp)
1

próby przekazania wartości A i porównać stosując metodę equals tak:

public static void main(String str[]) { 

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

    System.out.println(b); 

} 

ten link, aby dowiedzieć się więcej o Command line argument in Java

+0

To nie jest 'null'-safe ... – Samoth

0

argumenty wiersza polecenia są przechowywane jako ciągi w String array String[] args that is passed to main() `.

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

Argumenty wiersza polecenia są wejściami przyjmowanymi z wiersza polecenia podczas uruchamiania programu. Argumenty przekazane mogą być dowolne. Który jest przechowywany w tablicy 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]); 
    } 
    } 

Przykład:

java Argdemo one two 

Wyjście będzie [? Jak przetwarzać argumenty wiersza polecenia w języku Java]

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

W twoim przykładzie, co oznacza pierwszy wiersz' javastack.java' ? Nie wiem na pewno, co to "w" Używa się do przyjmowania danych wejściowych z wiersza poleceń podczas uruchamiania programu. "Odnosi się do, ale sekwencja to 1) komenda parse 2) parametry instalacji 3) uruchom program. Nie wiem na pewno, co to jest "To" w "To zasadniczo przyspiesza wykonywanie programu, gdy program zależy od danych wprowadzanych przez użytkownika." Odnosi się do, ale nie ma nic w _parametrze przekazującym _ do zwiększenia wydajności programu. – greybeard

Powiązane problemy