argumentene Java Command

stemmer
20

Jeg prøver å finne ut om 'a' ble oppgitt som den første strengen argument.

Publisert på 04/04/2009 klokken 00:13
kilden bruker
På andre språk...                            


9 svar

stemmer
1

Din mainmetode har et String[]argument. Som inneholder de argumentene som har gått til programmene dine (det er ofte kalt args, men det er ikke et krav).

Svarte 04/04/2009 kl. 00:16
kilden bruker

stemmer
31

public class YourClass {
    public static void main(String[] args) {
        if (args.length > 0 && args[0].equals("a")){
            //...
        }
    }
}
Svarte 04/04/2009 kl. 00:16
kilden bruker

stemmer
5

Kommando-argumenter blir sendt i den første String[]parameteren til main(), f.eks

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

I eksemplet ovenfor, argsinneholder alle kommandolinjen argumenter.

Det korte, søt svaret på spørsmålet som stilles er:

public static void main( String[] args ) {
    if( args.length > 0 && args[0].equals( "a" ) ) {
        // first argument is "a"
    } else {
        // oh noes!?
    }
}
Svarte 04/04/2009 kl. 00:17
kilden bruker

stemmer
2

Kommando-argumenter er tilgjengelige via String[] argsparameter av mainmetoden.

For første argumentet kan du sjekke args[0]

hele koden vil se ut

public static void main(String[] args) {
    if ("a".equals(args[0])) {
         // do something
    }
}
Svarte 04/04/2009 kl. 00:17
kilden bruker

stemmer
17

Hver Java-program starter med

public static void main(String[] args) {

Det utvalg av typen Stringsom main()tar som parameter holder kommandolinjeargumentene til programmet. Hvis brukeren kjører programmet som

$ java myProgram a

da args[0]vil holde streng "a".

Svarte 04/04/2009 kl. 00:17
kilden bruker

stemmer
0

Som alle andre har sagt ... .equals metoden er det du trenger.

I off sjanse du brukt noe sånt som:

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

da det ikke fungerer fordi == sammen plasseringen av de to objektene (fysisk likestilling) snarere enn innholdet (logisk likestilling).

Siden "a" fra kommandolinjen og "a" i kilden for programmet er fordelt på to forskjellige steder i == kan ikke brukes. Du må bruke lik metode som vil sjekke for å se at begge strenger har de samme tegnene.

Et annet merke ... "a" == "a" vil fungere i mange tilfeller, fordi Strings er spesielle i Java, men 99,99999999999999% av tiden du vil bruke .equals.

Svarte 04/04/2009 kl. 00:56
kilden bruker

stemmer
38

Bruk apache commons cli hvis du har planer om å utvide det forbi en enkelt arg.

"The Apache Commons CLI biblioteket gir en API for parsing kommandolinjealternativer gått til programmer. Det er også i stand til å skrive ut hjelpemeldinger detaljering tilgjengelige for et kommandolinjeverktøy alternativer."

Commons CLI støtter ulike typer alternativer:

  • POSIX som alternativer (ie. Tjære zxvf foo.tar.gz)
  • GNU like lange flagg (ie. Du --human lesbar --max dybde = 1)
  • Java lignende egenskaper (ie. Java -Djava.awt.headless = true -Djava.net.useSystemProxies = true Foo)
  • Korte alternativer med verdi knyttet (ie. Gcc -O2 foo.c)
  • lange flagg med én bindestrek (ie. maur -projecthelp)
Svarte 04/04/2009 kl. 01:02
kilden bruker

stemmer
1

Prøv å passere verdien en og sammenligne med lik metode som dette:

public static void main(String str[]) {

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

    System.out.println(b);

}

Følg denne linken for å vite mer om Command line argument i Java

Svarte 22/10/2013 kl. 06:12
kilden bruker

stemmer
0

Kommando-argumenter blir lagret som tråder i Stringmatrisen String[] args that is passed tohoved () '.

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

Kommandolinjeargumentene er inngangene som godtar fra ledeteksten mens du kjører programmet. Argumentene gikk kan være noe. Som er lagret i args[]matrisen.

//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]);
    }
    }

Eksempel:

java Argdemo one two

Utgangen vil være:

there are 2 command line arguments:
they are:
arg[0]:one
arg[1]:two
Svarte 18/12/2016 kl. 17:44
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more