2009-04-04 22 views

risposta

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

Il metodo main ha un argomento String[]. Questo contiene gli argomenti che sono stati passati alle tue applicazioni (è spesso chiamato args, ma non è un requisito).

5

argomenti della riga di comando vengono trasmessi nel primo parametro String[] a main(), ad esempio

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

Nell'esempio precedente, args contiene tutti gli argomenti della riga di comando.

La risposta breve e dolce alla domanda posta è: gli argomenti della riga

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

comandi sono accessibili tramite String[] args parametro del metodo main.

Per primo argomento è possibile controllare args[0]

intero codice sarebbe simile

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

Ogni Java inizia con

public static void main(String[] args) { 

tale matrice di tipo String che main() prende come parametro contiene gli argomenti della riga di comando per il tuo programma. Se l'utente esegue il programma come

$ java myProgram a 

poi args[0] terrà la stringa "a".

0

Come tutti gli altri hanno detto ... il metodo .equals è quello che ti serve.

in bassa possibilità che hai usato qualcosa come:

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

allora non funziona perché == confronta la posizione dei due oggetti (uguaglianza fisica), piuttosto che il contenuto (uguaglianza logica).

Poiché "a" dalla riga di comando e "a" nella sorgente del programma sono allocati in due posizioni diverse, == non può essere utilizzato. Devi usare il metodo equals che controllerà che entrambe le stringhe abbiano gli stessi caratteri.

Un'altra nota ... "a" == "a" funzionerà in molti casi, perché le stringhe sono speciali in Java, ma il 99.99999999999999% del tempo che si desidera utilizzare .equals.

37

Utilizzare il apache commons cli se si prevede di estendere tale oltre un singolo arg.

"La libreria CLI di Apache Commons fornisce un'API per l'analisi delle opzioni della riga di comando passate ai programmi ed è inoltre in grado di stampare i messaggi di aiuto che dettagliano le opzioni disponibili per uno strumento da riga di comando."

Commons CLI supporta diversi tipi di opzioni:

  • POSIX come opzioni (. Es tar -zxvf foo.tar.gz)
  • GNU come opzioni lunghe (cioè du --human-leggibile. --max approfondita = 1)
  • Java come le proprietà (es. java -Djava.awt.headless = true -Djava.net.useSystemProxies = true Foo)
  • opzioni corte con valore attribuito (es. -O2 gcc foo.c)
  • opzioni lunghe con trattino singolo (ad esempio ant -projec thelp)
1

cercare di passare il valore di una e confrontare con il metodo equals in questo modo:

public static void main(String str[]) { 

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

    System.out.println(b); 

} 

Segui questo link per saperne di più su Command line argument in Java

+0

Questo non è 'null'-safe ... – Samoth

0

argomenti della riga di comando vengono memorizzati come stringhe nel String array String[] args that is passed to principale() `.

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

Gli argomenti della riga di comando sono gli input che accettano dal prompt dei comandi durante l'esecuzione del programma. Gli argomenti passati possono essere qualsiasi cosa. Che è memorizzato nell'array 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]); 
    } 
    } 

Esempio:

java Argdemo one two 

L'output sarà: [? Come fare il parsing argomenti della riga di comando in Java]

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

Nel tuo esempio, cosa significa javastack.java. ? Non so per certo cosa 'It' in' È usato per accettare input dal prompt dei comandi durante l'esecuzione del programma. »Si riferisce a, ma la sequenza è 1) comando parse 2) parametri di configurazione 3) esegui il programma. Non so per certo cosa il 'This' in' Questo essenzialmente accelera l'esecuzione del programma quando il programma dipende dall'input dell'utente. Si riferisce a, ma non c'è nulla in _parameter passing_ to _speed up the program execution_. – greybeard

Problemi correlati